亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

事件委托解決問題

因為要綁定事件,如果為所有tr的a綁定一個事件去刪除的話,節點一多影響效率不說,在后面點擊按鈕添加的時候,后添加的這些節點還沒辦法刪除,這就非常惱火了,于是用事件委托,完美的可以解決上述兩個問題,而且簡單!


<!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(){

??????????????????

?????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。

????????const?table=document.querySelector('table');

????????const?tbody=document.querySelector('tbody');

????????table.onmouseover=function(e){

????????????if(e.target.parentNode.nodeName==='TR'){

????????????????e.target.parentNode.style.backgroundColor="#f2f2f2";

????????????}

????????}

????????table.onmouseout=function(e){

????????????if(e.target.parentNode.nodeName==='TR'){

????????????????e.target.parentNode.style.backgroundColor="#fff";

????????????}

????????}


????????delStu(tbody);

?????}

?????

??????//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;

?????function?addStu(number,name){

????????const?obj={

????????????number,

????????????name,

????????????*[Symbol.iterator](){

????????????????yield?*?Object.values(this);?

????????????}

????????};


????????const?tr=document.createElement("tr");

????????for(const?value?of?obj){

????????????const?td=document.createElement("td");

????????????td.innerText=value;

????????????tr.appendChild(td);

????????}

????????const?td=document.createElement("td");

????????const?a=document.createElement("a");

????????a.setAttribute("href","javascript:;");

????????a.innerText="刪除";

????????td.append(a);

????????tr.append(td);

????????document.querySelector("tbody").appendChild(tr);

?????}

?????//?創建刪除函數

?????function?delStu(tbody){

????????tbody.onclick=function(e){

????????????if(e.target.nodeName==='A'){

????????????????const?{path:[a,b,c]}=e;

????????????????tbody.removeChild(c);

????????????}

????????}

????}



??</script>?

?</head>?

?<body>?

???????<table?border="1"?width="50%"?id="table">

???????<tr>

????????<th>學號</th>

????????<th>姓名</th>

????????<th>操作</th>

???????</tr>??


???????<tr>

????????<td>xh001</td>

????????<td>王小明</td>

????????<td><a?href="javascript:;"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??-->

???????</tr>


???????<tr>

????????<td>xh002</td>

????????<td>劉小芳</td>

????????<td><a?href="javascript:;">刪除</a></td>???<!--在刪除按鈕上添加點擊事件??-->

???????</tr>??


???????</table>

???????<input?type="button"?value="添加一行"?onclick="addStu(1,'chn')"/>???<!--在添加按鈕上添加點擊事件??-->

?</body>

</html>



正在回答

1 回答

真無語了,來這裝什么東西

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468829    人
  • 解答問題       22582    個

本課程從如何插入JS代碼開始,帶您進入網頁動態交互世界

進入課程

事件委托解決問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號