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

时间:2012-09-21 06:35:23

标签: javascript html

我的代码看起来像这样,特写:

<h2>
<span class="stuff">[<a id="someid">stuff</a>]</span> <span class="moreStuff">Another test</span>
</h2>

我找到了一种方法来选择我的a元素,并附加一个id。我现在需要做的是选择其父<h2>元素,而不是<span>元素。我该怎么做(允许JQuery)?

编辑:当我检索选定的<a>时,我得到了一个数组(我的页面上有很多这样的结构)。当我尝试编写myArray[someIndex].closest("h2")时,它表示该元素没有closest()方法。我该怎么做呢?

3 个答案:

答案 0 :(得分:5)

一种方法是使用jQuery的.parents()方法和选择器。这样的事情。

$("#someid").parents("h2");

<强>更新

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

$("#someid").closest("h2");

更新2:

使用纯JavaScript进行这项工作会更多一些。不确定它是否是最有效的,但一种方法是选择带有document.getElementById()的元素,然后通过parentNode属性获取对其父级的引用。然后你必须检查它是否是h2元素,如果没有,请查看那些元素父节点,依此类推。

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

答案 1 :(得分:1)

<h2>不是<a>的父级,但它是祖先,请使用.closest()来选择它

$("#someid").closest("h2");

答案 2 :(得分:1)

尝试使用.parent()获得DOM树的两倍或更多级别。

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