我想使用最近的遍历来选择一个项目,我的html如下所示:
<span id='target'></span>
<a></a>jquery
assume 'a' = $(this),
then I do $(this).closest('#target');但似乎没有选择#目标..。这里怎么了?
发布于 2013-10-26 05:52:52
Closest('#target')不会在这里工作,因为a标记是span#target的兄弟,而不是父标记。使用Closest查找这两个元素的父元素,然后进行查找以获得target span,或者只使用.prev获取同级target span。
$(this).closest("div").find("#target");或
$(this).prev("#target");发布于 2013-10-26 05:50:09
因为有和id,所以可以使用它作为id选择器,因为id在文档中是唯一的--在本例中不需要使用任何关系查找。
var target = $('#target')如果您有像上面这样的模式,anchor元素后面跟着一个span元素,那么使用一个class属性而不是id。在这种情况下,span是anchor元素的前一个同级,因此您需要使用.prev()。
<span class='target'></span>
<a></a>
var target = $(this).prev('.target');// $(this).prev() is sufficient .closest()将寻找一个祖先元素,而不是同级元素。
发布于 2013-10-26 05:54:37
“关闭”不检查兄弟姐妹,而是检查元素及其父元素jQuery.closest。
对于集合中的每个元素,通过测试元素本身并遍历DOM树中的祖先,获得与选择器匹配的第一个元素。
在您的例子中,<a>和<span>是兄弟姐妹,而不是父/子-所以使用closest不会从a找到span。
https://stackoverflow.com/questions/19603362
复制相似问题