一些JS的問(wèn)題
<!DOCTYPE?html> <html> ?<head> ??<title>?new?document?</title>?? ??<meta?http-equiv="Content-Type"?content="text/html;?charset=gbk"/>??? ??<script?type="text/javascript">? ?? ??????window.onload?=?function(){ ???????????var?tr?=?document.getElementsByTagName("tr");??????? ???????????for(var?i=0;?i<tr.length;?i++){ ???????????????bacChange(tr[i]); ???????????} ? ?} ?????function?bgcChange(obj){ ?????????obj.onmouseover=function(){ ?????????????obj.style.backgroundColor="#f2f2f2"; ?????????} ?????????obj.onmouseout=function(){ ?????????????obj.style.backgroundColor="#fff"; ?????????} ?????} ??????//?編寫一個(gè)函數(shù),供添加按鈕調(diào)用,動(dòng)態(tài)在表格的最后一行添加子節(jié)點(diǎn); ?????var?num=2; ?????function?add(){ ?????????num++; ?????????var?tr=document.createElement("tr"); ?????????var?td1=document.createElement("td"); ?????????var?td2=document.createElement("td"); ?????????td1.innerHTML="xh00"+num; ?????????td2.innerHTML="第"+num+"學(xué)生"; ?????????var?del?=?document.createElement("td"); ?????????del.innerHTML="<a?href='javascript:;'?onclick='del(this)'?>刪除</a>"; ?????????var?tab=document.getElementById("table"); ?????????tab.appendChild(tr); ?????????tr.appendChild(td1); ?????????tr.appendChild(td2); ?????????tr.appendChild(del); ??????????var?tr?=?document.getElementsByTagName("tr"); ??????????for(var?i=?0;i<tr.length;i++) ??????????{ ??????????????bgcChange(tr[i]); ??????????} ?????} ???? ??? ? ?????//?創(chuàng)建刪除函數(shù) ????????function?del(obj){ ????????????var?tr?=obj.parentNode.parentNode; ????????????tr.parentNode.removeChild(tr); ????????} ??</script>? ?</head>? ?<body>? ???<table?border="1"?width="50%"?id="table"> ???<tr> <th>學(xué)號(hào)</th> <th>姓名</th> <th>操作</th> ???</tr>?? ???<tr> <td>xh001</td> <td>王小明</td> <td><a?href="javascript:;"?onclick="del(this);">刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??--> ???</tr> ???<tr> <td>xh002</td> <td>劉小芳</td> <td><a?href="javascript:;"?onclick="del(this);">刪除</a></td>???<!--在刪除按鈕上添加點(diǎn)擊事件??--> ???</tr>?? ???</table> ???<input?type="button"?value="添加一行"??onclick="add()"/>???<!--在添加按鈕上添加點(diǎn)擊事件??--> ?</body> </html>
代碼開始的 window.onload是什么意思,有什么用?
在add方法中為什么子節(jié)點(diǎn)是添加到table節(jié)點(diǎn)中,而不是body
del方法中,是不是var tr指向的是table,到底是如何判斷父子節(jié)點(diǎn)的
????大神幫忙解答下, 謝謝咯
2017-05-24
window.onload是因?yàn)闉g覽器在從上到下解析html的時(shí)候,如果遇見(jiàn)script標(biāo)簽,就是先執(zhí)行js語(yǔ)句,然后再解析下面的html元素,如果你的js獲取的是還沒(méi)有解析的html文件,就會(huì)報(bào)錯(cuò),這是使用window.onload就是等html元素全部解析以后再執(zhí)行js語(yǔ)句。
add方法td ,tr這些元素都是在table里面才起作用的 var tr是包裹這那個(gè)a標(biāo)簽的tr元素,起作用的主要是tr.parentNode.removeChild(tr); tr.parentNode指的才是table。
沒(méi)事多百度