2

我试图在 a 中获取所有找到的元素<div>,但默认情况下它在找到第一次出现时停止,但我希望它列出每个找到的元素的id值。

所以这不起作用:

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

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

4

3 回答 3

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(...)

如果你想要所有的ids 作为一个字符串:

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

的参数join是分隔符,例如.join('-').join(',')不带:.join('')

于 2012-06-19T17:56:00.380 回答
1

也许这样?

var ids = [];

$("div span").each(function() {
  if (this.id) {
    ids.push(this.id);
  }
});

attr() 方法将始终仅返回第一个元素属性。

于 2012-06-19T17:57:19.300 回答
1
var listy = '';

$("div span").each(function(){  
  listy += this.id ;  
});

jsBin 演示


或者像:

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 演示 2

于 2012-06-19T18:01:41.623 回答