单击时获取父元素的ID

时间:2015-01-08 14:12:10

标签: javascript html

我正在尝试在UL点击上显示父LI的ID。但警报显示未定义的值。我哪里错了?

HTML:

<ul id='uiID'>
    <li id='myLi'>A</li>
</ul>

的JavaScript

var x = document.getElementById("myLI").parentNode.nodeName;
alert(x.id);

7 个答案:

答案 0 :(得分:11)

您未将任何点击事件附加到该元素,而您案例中的nodeName会返回LI,因此不需要。你想要的是

document.getElementById("myLI").onclick = function(e){
  alert(e.target.parentNode.id);
}

答案 1 :(得分:3)

您可以这样做:

<ul id='uiID'>
   <li id='myLi' onclick="alert(this.parentNode.id)">A</li>
</ul>

答案 2 :(得分:1)

Javascript对大多数内容都区分大小写:

<li id='myLi'>A</li>
          ^^--- big L, small i

var x = document.getElementById("myLI").parentNode.nodeName;
                                   ^^---big L, big I

由于您使用的是未定义的ID,因此getElementById将为&#34;未找到匹配项&#34;返回null。 Null没有&#34; parentNode&#34;,因此你的错误。

答案 3 :(得分:1)

var id = $(this).parent().attr("id");

console.log(id);

答案 4 :(得分:0)

HTML:

<ul id='uiID'>
<li id='myLi'>A</li>
</ul>

JavaScript(*您只需从x删除“ .nodeName”)

var x = document.getElementById("myLi").parentNode;
alert(x.id);

答案 5 :(得分:0)

您也可以使用最接近的函数来获取父对象。 ul最接近我的元素。

var el = document.getElementById('myLi');

var r1 = el.closest(“ ul”);

答案 6 :(得分:0)

您可以使用document.getElementById(“ myLI”)。parentElement.id

<p>Example list:</p>

<ul id="ul-id">
  <li id="myLI">Coffee</li>
  <li>Tea</li>
</ul>

<p>Click the button to get the node name of the parent element of the li element in the list.</p>

<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
  var x = document.getElementById("myLI").parentElement.id;
  document.getElementById("demo").innerHTML = x;
}
</script>