jquery选择以前不是兄弟的匹配元素

时间:2011-10-16 20:15:11

标签: jquery

这看起来像是一个非常业余的问题,但我有一个像这样的HTML DOM结构:

<div class="1">
    <div class="1a">
       <div class="1aa"></div>
    </div>
    <div class="1b">
        <a href="#">Link</a>
    </div>
</div>

我需要选择不是直接兄弟姐妹的<div>,例如:

$(function(){
   $('a').click(function(){
       // select div .1a
   });
});

我无法直接选择div .1a,因为.1a可能有多个实例,我需要选择离该链接最近的那个。

任何帮助表示赞赏

3 个答案:

答案 0 :(得分:0)

使用.closest(“。1a”)。这将选择最接近图像的所需div。

答案 1 :(得分:0)

$(function(){
   $('a').click(function(){
     $(this).closest(".1a");
   });
});

.closest(“selector”)找到与给定选择器匹配的元素的第一个祖先

参见http://api.jquery.com/closest/ 了解更多信息和示例

答案 2 :(得分:0)

你能明确地把应该选择的div放在链接的rel属性中这个id:

<div class="1">
<div class="1a" id="my-div-1">
   <div class="1aa"></div>
</div>
<div class="1b">
    <a href="#" rel="my-div-1">Link</a>
</div>
</div>

您的JS代码如下所示:

$(function(){
   $('a').click(function(){
     var selector = $(this).attr("rel");
     $("#"+selector).DOSOMETHING();
   });
});

这将始终有效,您不需要认为最接近正确的一个。

约万

相关问题