2

内で見つかったすべての要素を取得しようとして<div>いますが、デフォルトでは、最初に見つかったときに停止しますが、見つかったすべての要素のid値をリストしたいと考えています。

したがって、これは機能しません:

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

.get私はと を試してきましたが.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 に答える