有三個小問題,先謝過大神了
第一個:為什么新添加的一行沒有改變背景顏色的效果?
window.onload?=?function(){代碼};
onload事件是在網頁加載完畢后立即執行的吧!
怎樣做才能給新添加的一行添加效果呢?
第二個:以下這兩個函數代碼可以整合嗎?
??????window.onload?=?function(){ ?????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。 ????var?alltr=document.getElementsByTagName('tr'); ????for(var?i=0;i<alltr.length;i++){ ????????????change(alltr[i]); ????????} ????}; ???? ????function?change(co){ ????????co.onmouseover=function(){ ????????????co.style.backgroundColor="#f2f2f2"; ????????} ????????co.onmouseout=function(){ ????????????co.style.backgroundColor="#fff"; ????????} ????}
我整合之后的結果是:
??????window.onload?=?function(){????? ?????//?鼠標移動改變背景,可以通過給每行綁定鼠標移上事件和鼠標移除事件來改變所在行背景色。 ????var?alltr=document.getElementsByTagName('tr'); ????for(var?i=0;i<alltr.length;i++){ ????????alltr[i].onmouseover=function(){ ????????????alltr[i].style.backgroundColor="#f2f2f2"; ????????} ????????alltr[i].onmouseout=function(){ ????????????alltr[i].style.backgroundColor="#fff"; ????????} ????} }
如果可以整合的話,我代碼哪錯了?
第三個:以下兩個刪除函數為什么傳入this參數的才有效果?
????function?Remove(x){ ????????var?gettr=x.parentNode.parentNode; ????????gettr.parentNode.removeChild(gettr); ????} ???? ????function?Del(){ ????????var?gett=this.parentNode.parentNode; ????????gett.parentNode.removeChild(gett); ????}
html綁定事件為:
???<tr> <td>xh001</td> <td>王小明</td> <td><a?href="javascript:Del();"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??--> ???</tr> ???<tr> <td>xh002</td> <td>劉小芳</td> <td><a?href="javascript:;"?onclick="Remove(this);"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??--> ???</tr>
2015-11-05
change(alltr[i])錯了,應改為change(this),this是指當前操作的元素,而alltr[i]是一個不具體的東西
2015-10-20
你可以看一下其他人是怎么寫的
2015-10-19
第一個問題:因為你新加的沒有綁定鼠標滑動事件,添加后,你要重新遍歷一次才行
?第二個問題:可以,不過不是你那樣子整合(太惡心了),這樣子就好了,以后也方便調用。
第三那個問題:這樣字表示的是當前的元素,不然的話根本不知道要刪除哪個。
最后面這個是我照著你的方法寫地,修改好了,可以成功運行:
錯誤的原因是,你沒有重新綁定滑動事件