兄弟のIDを取得しようとしています。
<ul>
<li id="a1">a1</li>
<li id="a2">a2</li>
<li id="a3">a3</li>
<li id="a4">a4</li>
</ul>
liの1つをクリックすると、コンマで区切られたすべての兄弟IDを選択したいと思います。元。#a2をクリックすると、#a1、#a3、#a4が表示されます。ありがとう。
使ってみてください.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/
兄弟を反復処理し、IDを配列に格納します。
$("ul li").click(function(){
var s = $(this).siblings();
var ids= [];
s.each(function(){
ids.push(this.id);
});
});
var commaSparatedIds = ids.join(',');
これでうまくいくはずです:
$('li').on('click', function() {
var ids = [];
var self = this;
$(this).siblings().each(function(){
if(self != this)
ids.push($(this).attr('id'));
});
alert(ids.join(','));
});
$('li[id^=a]').on('click', function() {
alert($.makeArray(
$(this).siblings()
.map( function() {
return $(this).attr('id');
})
).join(', '));
});