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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有兩個問題:1,背景顏色沒有改變;2,不能刪除行

有兩個問題:1,背景顏色沒有改變;2,不能刪除行

<!DOCTYPE?html> <html> ?<head> ??<title>?new?document?</title>?? ??<meta?http-equiv="Content-Type"?content="text/html;?charset=gbk"/> ??<style?type="text/css"> ??????.show{ ????????background-color:#9F6; ????????color:#00C; ??????} ??</style> ??<script?type="text/javascript">? ?? ??????window.onload?=?function(){ ?????????????????? ?????//?!!?功能不能實現???鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。 ????????var?rowList?=?document.getElementsByTagName("tr"); ????????for(var?i=1;i<rowList.length;i++){ ????????????rowList[i].onmouseover?=?function(){ ????????????????rowList[i].className?=?"show"; ????????????} ????????????rowList[i].onmouseout?=?function(){ ????????????????rowList[i].className?=?"hideShow"; ????????????} ????????} ???????? ? ?} ????? ??????//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點; ????function?add(){ ????????var?content?=?prompt("請輸入您的學號和姓名,中間以逗號隔開",""); ????????var?id?=?content.split(",")[0]; ????????var?name?=?content.split(",")[1]; ????????var?row?=?document.createElement("tr"); ????????var?tdName?=?document.createElement("td"); ????????var?tdId?=?document.createElement("td"); ????????var?tdOpe?=?document.createElement("td"); ????????var?link?=?document.createElement("a"); ????????tdName.innerHTML?=?name; ????????tdId.innerHTML?=?id; ????????link.innerHTML?=?"刪除"; ????????link.setAttribute("href","javascript:del();"); ????????row.appendChild(tdId); ????????row.appendChild(tdName); ????????tdOpe.appendChild(link); ????????row.appendChild(tdOpe); ????????var?table?=?document.getElementById("table"); ????????table.appendChild(row); ????} ???? ??? ? ?????//???!功能不能實現????????????創建刪除函數 ????????function?del(){ ????????????var?thisRow?=?this.parentNode; ????????????var?table?=?document.getElementById("table"); ????????????table.removeChild(thisRow); ????????} ??</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:del();"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??--> ???</tr> ???<tr> <td>xh002</td> <td>劉小芳</td> <td><a?href="javascript:del();"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??--> ???</tr>?? ???</table> ???<input?type="button"?value="添加一行"?onclick="add()"?/>???<!--在添加按鈕上添加點擊事件??--> ?</body> </html>
查看完整描述

2 回答

已采納
?
黑女2008

TA貢獻75條經驗 獲得超32個贊


第一個問題,js沒有塊級作用域,就是你?rowList[i].className?=?"show";這里的i的值始終都是你最后循環的結果3

rowList[i].onmouseover = function(){
? ?this.className = "show";
}
rowList[i].onmouseout = function(){
? ?this.className = "hideShow";
}

第二個問題,你var thisRow = this.parentNode; 這里的this是window對象,并不上你的tr這行對象,

<td><a onclick="del(this)" >刪除</a></td> ? <!--在刪除按鈕上添加點擊事件 ?-->

// ??!功能不能實現 ? ? ? ? ? ?創建刪除函數
function del(thisNode){
? ?var thisRow = thisNode.parentNode.parentNode;
? ?thisRow.remove();
}

查看完整回答
3 反對 回復 2016-09-11
  • 黑女2008
    黑女2008
    remove()這個方法好像是jquery吧,記不清楚了。如果那個方法不行,就 function del(thisNode){ var tr=thisNode.parentNode.parentNode; var tbody=tr.parentNode; tbody.removeChild(tr); } (table默認生成的頁面結構下會有一個tbody子元素)
  • stone310
    stone310
    跟題主有個同樣問題,看了您的回答還有有些模糊,為什么這么寫(不加參數)<a onclick="del()" >這里del里面的this是window呢,del()不也是在a標簽上調用的嗎,在哪調用this指向哪,不應該指向a嗎
  • 黑女2008
    黑女2008
    href="javascript:del();"等價于href="javascript:window.del();"你這個del是window的方法,誰調用this指向誰,就指向了window啊,onclick="del(this)" 這個就等價于onclick="window.del(this)"我這里的this傳遞過去并非就是改變了this指向,這里僅僅是一個參數的傳遞。就是調用del()方法,傳遞了個參數,這個參數就是點擊的那個標簽,del方法的this還是window對象,只是這個方法接收了一個參數。
點擊展開后面3
?
Siming0

TA貢獻16條經驗 獲得超32個贊

請指向當前this,鼠標進入時才能有效果

查看完整回答
1 反對 回復 2016-09-11
  • 2 回答
  • 1 關注
  • 1559 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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