如何从页面获取所有div attr id?

时间:2013-03-28 19:23:31

标签: javascript jquery

我希望jquery从页面中给我所有ID attr of divs?

我有类似的东西

var divs = $('div').attr('id');

这会返回没有子对象吗?

Html文件

`   <script type="text/x-handlebars" data-template-name="select">
    <div id="comp_select">
        <div id="language">
            Language: {{view PortalComp.selectView}}
        </div>
    </div>
</script>`

4 个答案:

答案 0 :(得分:4)

好吧,首先,attr返回一个字符串,而不是一个集合。其次,它只返回调用它的集合中 first 元素的所需属性值。在将值提供给数组之前,使用each迭代集合。

var arr = [];
$('div').each(function(){
    arr.push($(this).attr('id'));
});
arr = arr.filter(function(i,v){return v});

编辑:当this answer指出正确时,需要采取预防措施以确保没有ID的div没有空数组值。在我的示例中,我使用filter过滤掉了空值,但更好的方法是使用较窄的选择器,即div[id]

答案 1 :(得分:2)

要确保只对具有ID的人进行迭代,请使用div[id]作为选择器,如下所示:

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

答案 2 :(得分:1)

<强>的jQuery

$("div").each(function(){
        alert($(this).attr("id"));
});

<强>标记

<div id="1"></div>
<div id="2"></div>
<div id="3"></div>
<div id="4"></div>
<div id="5"></div>

jsFiddle http://jsfiddle.net/UGbHB/

答案 3 :(得分:1)

var ids = jQuery.map($('div[id]'), function(el) {
    el.id;
});