2011-05-02 160 views
0

我想知道对兄弟()函数有什么要求。例如,如果html如下所示,那么哪个选择器将进入参数(),并且我的目标是现在的div类,并且可以详细解释哪些父元素或者参数中应该包含哪些元素。感谢所有帮助表示感谢兄弟功能

$(function(){ 
      $(".target").click(function(){ 
       $(this).siblings(".a_cont").slideDown(100); 
      }); 
    }) 

<div class='yes'> 
    <div class='what'> 
    <button class='target'> </button> 
    <div class='now'> </div> 
    </div> 
</div> 

<div class='yes'> 
<div class='what'> 
    <button class='target'> </button> 
    <div class='now'> </div> 
    </div> 
</div> 

回答

1

jQuery API文档通常非常有帮助。 This是.siblings()的页面。

的文档状态:

如果提供的jQuery代表了一组DOM元素,()方法允许我们通过在DOM树中这些元素的兄弟姐妹搜索并构造新的.siblings jQuery对象来自匹配元素。

该方法可以接受一个与我们可以传递给$()函数相同类型的选择器表达式。如果提供了选择器,元素将通过测试它们是否匹配来过滤。

因此,您从一个jQuery对象开始,如您的示例中的$(this).siblings()会找到DOM树中的所有同级元素,结果是一个新的jQuery对象。选择器允许您过滤元素。所以要做你想要的按钮,你的处理器需要的代码:

$(this).siblings(".now"); 

这需要现在的类作为过滤器。

0

你可以试试这个: CSS:

.now { 
    width:100%; 
    height:100px; 
    display:none; 
} 

HTML: 目标 target.sibling

<div class="yes"> 
    <div class="what"> 
     <button class="target">target</button> 
     <div class="now">target.sibling</div> 
    </div> 
</div> 

JS:

$(function() { 
      $(".target").click(function() { 
       $(this).siblings().slideDown(100); 
      });   
     }) 
+0

您可以通过说明这是为什么可行吗? – 2016-10-27 06:46:27