最近的元素 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 不是正确的工具。

我会使用 previousElementSiblingnextElementSibling:

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>