我正在尝试在<div>
中找到所有找到的元素,但默认情况下它会在找到第一个匹配项时停止,但我希望它列出每个找到的元素的id
值。 / p>
所以这不起作用:
listy = $("DIV").find("SPAN").attr("id");
我一直在试验.get
和.map
,但我认为它们不是我想要的......
答案 0 :(得分:12)
listy = $("div").find("span").map(function(){
return this.id;
}).get();
没有find
甚至更好:
listy = $("div span").map(function(){
return this.id;
}).get();
如果您只想定义<span>
属性id
,请将选择器更改为:
$(div span[id]).map(...)
如果您希望将所有id
s作为字符串:
listy = $("div span").map(function(){
return this.id;
}).get().join('');
join
的参数是分隔符,例如.join('-')
或.join(',')
或不.join('')
答案 1 :(得分:1)
也许这样?
var ids = [];
$("div span").each(function() {
if (this.id) {
ids.push(this.id);
}
});
attr()方法将始终只返回第一个元素属性。
答案 2 :(得分:1)
var listy = '';
$("div span").each(function(){
listy += this.id ;
});
或者喜欢:
var listy = []; // create array
$("div span[id]").each(function(){ // span with ID data
listy.push( this.id ); // push ID names into array
});
// Now use listy.join(); to see the list
// you can also do: listy+'' to transform it into string.