如果我有这样的div:
<div id="box">
<div class="but" id="1">Text 1</div>
<div class="but" id="2">Text 2</div>
</div>
如何创建.but
div中包含的#box
元素的所有ID的数组?
在示例中将是[1, 2]
。
答案 0 :(得分:8)
var ids = $('#box > .but').map(function() {
return this.id || null;
}).get();
这会为.but
元素的每个#box
子项创建一个条目 iff 它有一个ID(null
值被丢弃,如果元素有没有ID,this.id
将返回一个空字符串(其值为false
))。如果每个元素都有明确的ID,或者您不关心/希望数组中可能为空值,则可以省略|| null
部分。
如果您想获取每个.but
后代的ID,请将选择器更改为:
$('#box .but')
答案 1 :(得分:1)
这应该有效:
var idArray = new Array();
$('#box .but').each(function() {
idArray.push(this.id);
});
答案 2 :(得分:1)
您可以使用.each循环遍历结果集中的所有元素:
var ar=[]
$('div.but').each(function(){
ar.push(this.id);
});
答案 3 :(得分:0)
尝试类似
的内容var idArray = new Array();
$(".but").each(function(index, item) { idArray.push(item.id); });
答案 4 :(得分:0)
这个怎么样:
var ar = jQuery('div#box').children('.but').map( function() {
return jQuery(this).attr('id');
}).get();
alert(ar);
@flexi kling 感谢美丽功能的信息map
和get