查找并列出每个元素的id值

时间:2012-06-19 17:54:56

标签: javascript jquery

我正在尝试在<div>中找到所有找到的元素,但默认情况下它会在找到第一个匹配项时停止,但我希望它列出每个找到的元素的id值。 / p>

所以这不起作用:

listy = $("DIV").find("SPAN").attr("id");

我一直在试验.get.map,但我认为它们不是我想要的......

3 个答案:

答案 0 :(得分:12)

listy = $("div").find("span").map(function(){
    return this.id;
}).get();

没有find甚至更好

listy = $("div span").map(function(){
    return this.id;
}).get();

Live DEMO

如果您只想定义<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 ;  
});

jsBin demo


或者喜欢:

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. 

jsBIn demo 2