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真正做什么的更多信息