Jquery - div中包含的list id元素的方式

时间:2011-04-13 09:51:20

标签: jquery

如果我有这样的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]

5 个答案:

答案 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')

参考.map().get()

答案 1 :(得分:1)

这应该有效:

var idArray = new Array();
$('#box .but').each(function() {
    idArray.push(this.id);
});

JSFiddle Example

答案 2 :(得分:1)

您可以使用.each循环遍历结果集中的所有元素:

var ar=[]
$('div.but').each(function(){
    ar.push(this.id);
});

这是working fiddle

答案 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 感谢美丽功能的信息mapget

DEMO