0

我正在尝试获取兄弟姐妹的 ID。

<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

4 回答 4

4

尝试使用.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
});

演示:http: //jsfiddle.net/Lpw4u/1/

于 2012-10-18T20:52:51.600 回答
1

遍历兄弟姐妹并将 id 存储在数组中。

$("ul li").click(function(){
    var s = $(this).siblings();
    var ids= [];
    s.each(function(){
       ids.push(this.id);
    });
});
 var commaSparatedIds = ids.join(',');
于 2012-10-18T20:51:50.107 回答
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(','));
});​
于 2012-10-18T20:54:45.440 回答
0
$('li[id^=a]').on('click', function() {
    alert($.makeArray(
      $(this).siblings()
         .map( function() {
           return $(this).attr('id'); 
         })
       ).join(', '));
});
于 2012-10-18T20:56:39.570 回答