【问题标题】:PHP, jQuery, selecting all divs within the parent divPHP,jQuery,选择父 div 中的所有 div
【发布时间】:2010-06-21 16:08:01
【问题描述】:

我正在寻找执行以下操作的通用选择器函数:

$(".data").click(function(){
   //insert proper selector
)};

<div class="one">
<div class="data">text</div>
<div class="data">text</div>
<div class="data">text</div>
</div>

<div class="two">
<div class="data">text</div>
<div class="data">text</div>
<div class="data">text</div>
</div>

我希望选择器执行以下操作:

1)。选择父 div 中的所有 div(这意味着包括您刚刚单击的那个)。

2)。不要选择其他“父”div 中的 div。

我还意识到,如果您可以从所选项目中过滤 $(this)(您单击的 div),那将会很酷。考虑一个额外的问题:)

我一直在从不同的角度看待这个问题,但只发现难看的硬编码(针对特定的父级)。感谢您的意见!

【问题讨论】:

    标签: php jquery jquery-selectors


    【解决方案1】:

    .siblings() 选择被点击者的兄弟姐妹。

    .andSelf() 将被点击的那个添加到集合中。

    测试示例: http://jsfiddle.net/sc23L/

    $(".data").click(function(){
         // reference the one that was clicked
       var $clicked = $(this);
    
         // reference the entire set
       var $divs = $clicked.siblings().andSelf();
    });
    

    【讨论】:

    • 完美,我什至没有意识到siblings() 的存在。该功能正是我想要的。谢谢帕特!
    • .andSelf() 这很漂亮,我总是这样做 .add(this)
    • @Evan - 是的,它基本上只是 .add() 在前一组中传递的包装器。 github.com/jquery/jquery/blob/master/src/traversing.js#L126
    • 是的,我不确定我是否喜欢这个用例,我想我宁愿坚持我以前的做法$(this).siblings().add(this)
    【解决方案2】:

    也许您正在寻找.siblings() 选择器?

    $('.data').click(function() {
       $(this).siblings('.data').andSelf()
    )};
    

    假设您要选择与当前选定元素同级的所有 .data 元素。 .andSelf() 将当前元素添加到选择中。

    【讨论】:

      【解决方案3】:

      兄弟选择器不会获取被点击的 div...

      $('.data').click(function(){
         var $clickedDiv = $(this);
         var $allDivs    = $(this).parent().children('div');
      });
      

      我没有得到“过滤 $(this)”的部分,但是有了 $clickedDiv,你可以做任何你想做的事情......

      【讨论】:

      • 谢谢,这也比我自己找到的答案更好:)
      【解决方案4】:

      好的,对于您的其他请求

      $(".data").click(function(){
         $(this); //code for the clicked element
         $(this).parent(); //code for parent of clicked element
         $(this).siblings(); //code for siblings
      )};
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-21
        • 2012-08-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 1970-01-01
        相关资源
        最近更新 更多