我希望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>`
答案 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;
});