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

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

有三個小問題,先謝過大神了

第一個:為什么新添加的一行沒有改變背景顏色的效果?

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>


正在回答

3 回答

change(alltr[i])錯了,應改為change(this),this是指當前操作的元素,而alltr[i]是一個不具體的東西

0 回復 有任何疑惑可以回復我~
<!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?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";
????????}
????}
??????//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;
????var?num=2;
????function?add(){
????????num++;
????????var?tr=document.createElement('tr');
????????var?tnum=document.createElement('td');
????????tnum.innerHTML="xh00"+num;
????????var?tname=document.createElement('td');
????????tname.innerHTML="第"+num+"名";
????????var?ta=document.createElement('td');
????????ta.innerHTML="<a?href='javascript:;'?onclick='Remove(this)'?>刪除</a>";
????????document.getElementById('table').appendChild(tr);
????????tr.appendChild(tnum);
????????tr.appendChild(tname);
????????tr.appendChild(ta);
?????????var?alltr=document.getElementsByTagName('tr');
????????for(var?i=0;i<alltr.length;i++){
????????????????change(alltr[i]);
????????????}
????}
????//?創建刪除函數
?????function?del(obj)
?????{
?????????var?tr=obj.parentNode.parentNode;
?????????tr.parentNode.removeChild(tr);
?????}
?????
??</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:;"?onclick="Remove(this);"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??-->
???????</tr>??
?
???????</table>
???????<input?type="button"?value="添加一行"?onclick='add();'/>???<!--在添加按鈕上添加點擊事件??-->
?</body>
</html>

你可以看一下其他人是怎么寫的

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

第一個問題:因為你新加的沒有綁定鼠標滑動事件,添加后,你要重新遍歷一次才行

?var?alltr=document.getElementsByTagName('tr');
????for(var?i=0;i<alltr.length;i++){
????????????change(alltr[i]);
????????}
????};

?第二個問題:可以,不過不是你那樣子整合(太惡心了),這樣子就好了,以后也方便調用。

第三那個問題:這樣字表示的是當前的元素,不然的話根本不知道要刪除哪個。

最后面這個是我照著你的方法寫地,修改好了,可以成功運行:

錯誤的原因是,你沒有重新綁定滑動事件

<!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?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";
????????}
????}
??????//?編寫一個函數,供添加按鈕調用,動態在表格的最后一行添加子節點;
????var?num=2;
????function?add(){
????????num++;
????????var?tr=document.createElement('tr');
????????var?tnum=document.createElement('td');
????????tnum.innerHTML="xh00"+num;
????????var?tname=document.createElement('td');
????????tname.innerHTML="第"+num+"名";
????????var?ta=document.createElement('td');
????????ta.innerHTML="<a?href='javascript:;'?onclick='Remove(this)'?>刪除</a>";
????????document.getElementById('table').appendChild(tr);
????????tr.appendChild(tnum);
????????tr.appendChild(tname);
????????tr.appendChild(ta);
?????????var?alltr=document.getElementsByTagName('tr');
????????for(var?i=0;i<alltr.length;i++){
????????????????change(alltr[i]);
????????????}
????}
?????//?創建刪除函數
????function?Remove(x){
????????var?gettr=x.parentNode.parentNode;
????????gettr.parentNode.removeChild(gettr);
????}
????
????function?Del(){
????????var?gett=this.parentNode.parentNode;
????????gett.parentNode.removeChild(gett);
????}
??</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:;"?onclick="Remove(this);"?>刪除</a></td>???<!--在刪除按鈕上添加點擊事件??-->
	???</tr>??

	???</table>
	???<input?type="button"?value="添加一行"?onclick='add();'/>???<!--在添加按鈕上添加點擊事件??-->
?</body>
</html>


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

黑色丶毛衣 提問者

感謝了,不過第二個問題整合之后并不能運行!第三個問題的‘Del()’刪除函數并不能運行,我綁定在第一行上面的!
2015-10-20 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

有三個小問題,先謝過大神了

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

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

幫助反饋 APP下載

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

公眾號

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