Javascript 使用JS获取特定类型的父HTML元素

Javascript 使用JS获取特定类型的父HTML元素,javascript,html,Javascript,Html,在特写中,我的代码如下所示: <h2> <span class="stuff">[<a id="someid">stuff</a>]</span> <span class="moreStuff">Another test</span> </h2> 我找到了一种方法来选择我的a元素,并将id附加到它。我现在需要做的是选择它的父元素,而不是元素。我怎样才能做到JQuery允许的那样 编辑:当我检索所选的

在特写中,我的代码如下所示:

<h2>
<span class="stuff">[<a id="someid">stuff</a>]</span> <span class="moreStuff">Another test</span>
</h2>
我找到了一种方法来选择我的a元素,并将id附加到它。我现在需要做的是选择它的父元素,而不是元素。我怎样才能做到JQuery允许的那样

编辑:当我检索所选的时,我会得到一个数组,在我的页面上有很多这样的结构。当我尝试编写myArray[someIndex].closesth2时,它表示元素没有最接近的方法。我该怎么做呢?

一种方法是使用带有选择器的jQuery方法。像这样的

$("#someid").parents("h2");
更新:

您可以将该方法与选择器一起使用,以仅获取与选择器匹配的最近父级

$("#someid").closest("h2");
更新2:

使用纯JavaScript做这件事需要做更多的工作。不确定它是否最有效,但一种方法是选择document.getElementById为的元素,然后通过parentNode属性获取对其父元素的引用。然后,您必须检查它是否是h2元素,如果不是,请查看该元素的父节点,依此类推

您可以查看jQuery源代码,看看它们是如何实现最接近的方法的。

一种方法是使用带有选择器的jQuery方法。像这样的

$("#someid").parents("h2");
更新:

您可以将该方法与选择器一起使用,以仅获取与选择器匹配的最近父级

$("#someid").closest("h2");
更新2:

使用纯JavaScript做这件事需要做更多的工作。不确定它是否最有效,但一种方法是选择document.getElementById为的元素,然后通过parentNode属性获取对其父元素的引用。然后,您必须检查它是否是h2元素,如果不是,请查看该元素的父节点,依此类推

您可以检查jQuery源代码,看看它们是如何实现最接近的方法的。

的不是要选择它的父级

$("#someid").closest("h2");
不是要选择它的的父级

$("#someid").closest("h2");
请尝试使用“获取DOM树上的两级或更高级别”

$("#someid").parent().parent();
请尝试使用“获取DOM树上的两级或更高级别”

$("#someid").parent().parent();

还有一件事:我如何确保它只选择最近的h2,而不选择其他h2?@Bluefire是否有多个h2元素嵌套在一起?理论上,没有,但任何事情都可能发生。请注意,我不会仅将此用于s和s:D@ChristoferEliasson如果我们使用纯JS,代码应该是什么谢谢,我通过chrome developer工具上的breakpoint查看它,得到了关于什么的更多信息。还有一件事:我如何确保它只选择最近的h2,而不是任何其他的h2?Bluefire有多个h2元素相互嵌套吗?理论上没有,但任何事情都可能发生。请注意,我不会仅将此用于s和s:D@ChristoferEliasson如果我们使用纯JS,代码应该是什么谢谢,我通过在chrome开发者工具上使用断点查看它,获得了关于.closest真正做什么的更多信息