我正在寻找一个广义的选择器函数,它可以执行以下操作:
$(".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)会很酷。考虑一个奖金问题:)
我一直在从不同的角度看这个,但只发现丑陋的硬编码(对于特定的父母)。我很感激任何意见!
答案 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
)};