我的代码看起来像这样,特写:
<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()
方法。我该怎么做呢?
答案 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();