0

我想让 jquery 给我ID页面中所有 div 的属性吗?

我有这样的东西

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

4 回答 4

4

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

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

编辑:正如这个答案正确指出的那样,需要采取预防措施以确保您没有来自没有 ID 的 div 的空数组值。在我的示例中,我使用 过滤掉了空值filter,但更好的方法是使用更窄的选择器,即div[id].

于 2013-03-28T19:24:52.407 回答
2

为了确保你只迭代那些有 id 的人,使用div[id]作为选择器,像这样:

var ids = [];
$('div[id]').each(function(){
    ids.push( this.id );
});
于 2013-03-28T19:28:27.713 回答
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/

于 2013-03-28T19:26:32.873 回答
1
var ids = jQuery.map($('div[id]'), function(el) {
    el.id;
});
于 2013-03-28T19:27:48.397 回答