最近的元素 id JS
Closest element id JS
有人可以帮我如何获取离按钮最近的元素的 ID 吗?
function Myfunc(ev) {
document.getElementbyId("demo").innerHTML = $(#ME).closest("div").attr('id');
}
<div id="target1">1 div</div>
<button onclick="Myfunc(this)" id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>
.closest
的作用是导航到与选择器匹配的 ancestor 元素。由于您想要的元素不是单击元素的祖先,因此 .closest
不是正确的工具。
我会使用 previousElementSibling
和 nextElementSibling
:
function Myfunc(elm) {
document.getElementById("demo").innerHTML = elm.previousElementSibling.id + ' and ' + elm.nextElementSibling.id
}
<div id="target1">1 div</div>
<button onclick="Myfunc(this)" id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>
请注意,您需要使用 getElementById
,而不是 getElementbyId
。此外,如果可能的话,使用 JS 正确附加监听器而不是使用内联处理程序(这被普遍认为是不好的做法):
document.querySelector('#ME').addEventListener('click', function() {
document.getElementById("demo").textContent = this.previousElementSibling.id + ' and ' + this.nextElementSibling.id;
});
<div id="target1">1 div</div>
<button id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>
有人可以帮我如何获取离按钮最近的元素的 ID 吗?
function Myfunc(ev) {
document.getElementbyId("demo").innerHTML = $(#ME).closest("div").attr('id');
}
<div id="target1">1 div</div>
<button onclick="Myfunc(this)" id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>
.closest
的作用是导航到与选择器匹配的 ancestor 元素。由于您想要的元素不是单击元素的祖先,因此 .closest
不是正确的工具。
我会使用 previousElementSibling
和 nextElementSibling
:
function Myfunc(elm) {
document.getElementById("demo").innerHTML = elm.previousElementSibling.id + ' and ' + elm.nextElementSibling.id
}
<div id="target1">1 div</div>
<button onclick="Myfunc(this)" id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>
请注意,您需要使用 getElementById
,而不是 getElementbyId
。此外,如果可能的话,使用 JS 正确附加监听器而不是使用内联处理程序(这被普遍认为是不好的做法):
document.querySelector('#ME').addEventListener('click', function() {
document.getElementById("demo").textContent = this.previousElementSibling.id + ' and ' + this.nextElementSibling.id;
});
<div id="target1">1 div</div>
<button id="ME">Click me to see id of those 2 elements</button>
<div id="target2">2 div</div>
<p id="demo"></p>