A標籤中通過href和onclick傳遞的this物件
阿新 • • 發佈:2019-02-10
功能:刪除表格中的一行
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:void(0);" onclick="delRow(this);">刪除</a></td> <!--在刪除按鈕上新增點選事件 -->
</tr>
</table>
js:
// 建立刪除函式
function delRow(obj){
var node=obj.parentNode.parentNode;
node.parentNode.removeChild(node);
}
一開始是這樣寫的:<a href="javascript:delRow(this);">刪除</a>,發現傳過去的不是a標籤。
上網查詢發現是這樣的:
當使用onclick="delRow(this)"的時候,直譯器會給他包裝一個匿名函式,變成了:
a.onclick = function anonymous()
{
delRow(this);
}
這個this指的就是a這個物件,而使用href的方式時,由於是一個地址,這個this就無處可指了。