<div><a href="javascript:go(this)"></a></div>为什么a标签的父节点获取不到
为什么通过这个JS调用this.parentNode.结果是undefind.而换成其它的标签就可以了呢...
为什么通过这个JS调用this.parentNode.结果是undefind.而换成其它的标签就可以了呢
展开
3个回答
展开全部
测了几种情况:
<script>
function go(obj){
alert(obj.parentNode.name);
}
</script>
<div name="d1"><a id="a1" href="javascript:go(this)"> 点 DIV 1 出错</a></div>
<div name="d2"><a id="a2" href="#" onclick="javascript:go(this)">点 DIV 2 正常</a></div>
<div name="d3"><a id="a3" href="javascript:go(document.getElementById('a3'))">点 DIV 3 正常</a></div>
感觉主要的问题不在于标签,而在于调用函数时传入的 this。
1. this用于href中不正常
2. this用于事件中如onclick中正常。
3. href中如果不用this,用document.getElementById("a3")传入一个确定对象,正常。
可以这样说:只有与事件调用有关的函数中,this才有效果。
<script>
function go(obj){
alert(obj.parentNode.name);
}
</script>
<div name="d1"><a id="a1" href="javascript:go(this)"> 点 DIV 1 出错</a></div>
<div name="d2"><a id="a2" href="#" onclick="javascript:go(this)">点 DIV 2 正常</a></div>
<div name="d3"><a id="a3" href="javascript:go(document.getElementById('a3'))">点 DIV 3 正常</a></div>
感觉主要的问题不在于标签,而在于调用函数时传入的 this。
1. this用于href中不正常
2. this用于事件中如onclick中正常。
3. href中如果不用this,用document.getElementById("a3")传入一个确定对象,正常。
可以这样说:只有与事件调用有关的函数中,this才有效果。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不要在href里用this,你可以把 go(this) 放到 onclick 里面去
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询