<script>
function show(o){
alert(o.parentNode.id);
}
</script>
<div id="a1"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a2"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a3"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a4"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a5"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a6"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a7"><a href="javascript:show(this);">文字文字文字</a></div>
123aa
弹出的值为 undefined。我把代码改成onclick才可以: <a href="#" onclick="javascript:show(this);">
但是改成这样,点击后,浏览器地址栏后面会多个#号,很不喜欢。
function show() {
alert(document.activeElement.parentNode.id);
}</script>
<div id="a1"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a2"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a3"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a4"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a5"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a6"><a href="javascript:show(this);">文字文字文字</a></div>
<div id="a7"><a href="javascript:show(this);">文字文字文字</a></div>
谢谢!这样子连 this 这个参数都可以省掉了
<div id="a1"><a onclick="javascript:show(this);" href="#">文字文字文字</a></div>
就可以了。可能这种对象的引用只对事件才有效吧。不单this实效,event.target也实效了。总结:还是用onclick这样的事件靠谱些。楼上的代码在chrom浏览器错误。IE和火狐可以。
<script type="text/javascript">
function show(o) {
alert(o.parentNode.id);
return false;
}
</script>
<div id="a1"><a href="#" onclick="return show(this);">文字文字文字</a></div>
<div id="a2"><a href="javascript:void(0);" onclick="show(this);">文字文字文字</a></div>这样两种都可以