无法读取父元素

时间:2015-09-12 09:34:28

标签: javascript jquery html css

我想构建一个脚本,用一个简单的mouseclick来识别其父元素中(未指定的)元素的索引。所点击的元素可能是spandivli或任何其他元素。

问题是我无法检索父元素的TagName / NodeName,因为我总是收到错误Uncaught TypeError: Cannot read property 'nodeName' of undefined

我的HTML看起来像这样:

<body>
    <span id="test1">
        <div>test</div>
    </span>
    <div id="test2">
        <div>eins</div>
        <div>zwei</div>
        <div>drei</div>
    </div>
</body>

我的功能如下:

$(document).on('click', function(evt){
    evt.stopPropagation();
    var child = evt.target.tagName;
    var parent = $(evt).parent();
    console.log(parent[0].nodeName);
});

根据this StackOverflow帖子,这应该是正确的,但它不起作用。

2 个答案:

答案 0 :(得分:1)

似乎 -

$(evt).parent();

应该是 -

$(evt.target).parent();

答案 1 :(得分:1)

  

我想构建一个脚本来识别其父级中的(未指定的)元素的索引...

所以你只需要使用evn.target方法$(document).on('click', function(evt) { var index = $(evt.target).index(); alert(index); });指向点击的元素:

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span id="test1">
    <div>test</div>
</span>
<div id="test2">
    <div>eins</div>
    <div>zwei</div>
    <div>drei</div>
</div>
&#13;
FormData()
&#13;
&#13;
&#13;