我正在尝试在点击 LI
后显示父级 UL
的ID。但是警报显示的值为未定义。我错在哪里了?
HTML:
<ul id='uiID'>
<li id='myLi'>A</li>
</ul>
JavaScript
var x = document.getElementById("myLI").parentNode.nodeName;
alert(x.id);
我正在尝试在点击 LI
后显示父级 UL
的ID。但是警报显示的值为未定义。我错在哪里了?
HTML:
<ul id='uiID'>
<li id='myLi'>A</li>
</ul>
JavaScript
var x = document.getElementById("myLI").parentNode.nodeName;
alert(x.id);
您没有将任何点击事件附加到元素,而在您的情况下nodeName
返回LI
,所以这不是您想要的。您需要的是
document.getElementById("myLI").onclick = function(e){
alert(e.target.parentNode.id);
}
addEventListener
,但是 e.target.parentNode
是找到实际被点击节点的父节点的正确方式。 - Paul S.<ul id='uiID'>
<li id='myLi' onclick="alert(this.parentNode.id)">A</li>
</ul>
Javascript对大部分内容区分大小写:
<li id='myLi'>A</li>
^^--- big L, small i
var x = document.getElementById("myLI").parentNode.nodeName;
^^---big L, big I
var id = $(this).parent().attr("id");
console.log(id);
你可以使用 closest 函数来获取父元素。 获取最接近我的元素的 ul。
var el = document.getElementById('myLi');
var r1 = el.closest("ul");
您可以使用 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>
HTML:
<ul id='uiID'>
<li id='myLi'>A</li>
</ul>
JavaScript(*你只需要从x中删除“.nodeName”)
var x = document.getElementById("myLi").parentNode;
alert(x.id);
myLi
和myLI
- sidgate