<div><a href="javascript:go(this)"></a></div>为什么a标签的父节点获取不到

为什么通过这个JS调用this.parentNode.结果是undefind.而换成其它的标签就可以了呢... 为什么通过这个JS调用this.parentNode.结果是undefind.而换成其它的标签就可以了呢 展开
 我来答
召秋梵悌p1
推荐于2018-03-28 · TA获得超过2282个赞
知道小有建树答主
回答量:616
采纳率:80%
帮助的人:685万
展开全部
测了几种情况:
<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才有效果。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dibkn
2012-05-14
知道答主
回答量:20
采纳率:0%
帮助的人:13.3万
展开全部
不要在href里用this,你可以把 go(this) 放到 onclick 里面去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ymh_pc
2012-05-13
知道答主
回答量:39
采纳率:0%
帮助的人:11.3万
展开全部
this??
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式