PHP,jQuery,选择父div中的所有div

时间:2010-06-21 16:08:02

标签: php jquery jquery-selectors

我正在寻找一个广义的选择器函数,它可以执行以下操作:

$(".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(这意味着包括您刚刚单击的div)。

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

我也意识到如果你可以从所选项目中过滤$(this)(你点击的div)会很酷。考虑一个奖金问题:)

我一直在从不同的角度看这个,但只发现丑陋的硬编码(对于特定的父母)。我很感激任何意见!

4 个答案:

答案 0 :(得分:5)

.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();
});

答案 1 :(得分:1)

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

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

假设您要选择所有.data元素作为当前所选元素的兄弟元素。 .andSelf()将当前元素添加到选择中。

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

好的,您的其他请求

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