在jquery选择器中获取兄弟姐妹

时间:2014-03-02 14:04:44

标签: jquery

我想检测两个元素的点击:

1) class is called advancedTargeting
2) the sibling li of the li that has the `area` attribute.

例如第二次要求:

<li area style='display:block'>bla</li>
<li>123</li>
<li>356</li>

所以我想抓住李区兄弟的点击。在这个例子中,我想在li上点击他的文本:123

<li area style='display:block'>bla</li>
<li>356</li>

(在本例中,点击356的li)..

他们应该运行相同的功能。

我认为应该做的事情如下:

$('.advancedTargeting, li[area]:next').live('click', function () {

});

5 个答案:

答案 0 :(得分:1)

这是siblings选择器,您需要。

$('.advancedTargeting, li[area] ~ li').live('click', function () {

});

答案 1 :(得分:1)

$('.advancedTargeting, li[area] + li').on('click', function (){
  var number = $(this).text();
});

答案 2 :(得分:1)

要选择具有li属性的area的第一个兄弟,只需使用siblings selector并结合:first selector

$('.advancedTargeting li[area]').siblings().filter(":first")

添加点击功能:

$('.advancedTargeting li[area]').siblings().filter(':first').on('click',function(){
//code goes here...
})

jsfiddle demo

答案 3 :(得分:0)

我建议:

$('li[area]').next().on('click', function (){
    // click handling here
});

虽然最好使用有效的html 5 data-*属性,而不是使用无效的自创属性。

顺便说一下,jQuery 1.7中不推荐使用live()(由on()替换),并在jQuery 1.9中删除;并且在jQuery中&lt; = 1.7 delegate()建议在文档中更高效/更高效。

参考文献:

答案 4 :(得分:0)

$('.advancedTargeting li[area]:next').live('click', function () {
...
});

$('.advancedTargeting li[area]:next').click(function () {
...
});