jQuery得到了兄弟姐妹的ids

时间:2012-10-18 20:49:59

标签: jquery selector siblings

我正在努力找到兄弟姐妹的ids。

<ul>
    <li id="a1">a1</li>
    <li id="a2">a2</li>
    <li id="a3">a3</li>
    <li id="a4">a4</li>
</ul>

当我点击其中一个li时,我想选择用逗号分隔的所有兄弟id。 防爆。我点击#a2并获得#a1,#a3,#a4。感谢。

4 个答案:

答案 0 :(得分:2)

尝试使用.siblings

$('li').click(function () {
   var selEl = [];
   $(this).siblings().each(function (idx, el) {
       selEl.push('#' + el.id);
   });

    //.join would return you comma separated but 
    //if you want a space after comma then you need to pass .join(', ')
    console.log(selEl.join(', ')); //click on #a2 and get #a1, #a3, #a4
});

DEMO: http://jsfiddle.net/Lpw4u/1/

答案 1 :(得分:1)

迭代兄弟姐妹并将数据存储在数组中。

$("ul li").click(function(){
    var s = $(this).siblings();
    var ids= [];
    s.each(function(){
       ids.push(this.id);
    });
});
 var commaSparatedIds = ids.join(',');

答案 2 :(得分:0)

这应该可以解决问题:

$('li').on('click', function() {
    var ids = [];
    var self = this;
    $(this).siblings().each(function(){
        if(self != this)
            ids.push($(this).attr('id'));
    });

    alert(ids.join(','));
});​

答案 3 :(得分:0)

$('li[id^=a]').on('click', function() {
    alert($.makeArray(
      $(this).siblings()
         .map( function() {
           return $(this).attr('id'); 
         })
       ).join(', '));
});