1. ホーム
  2. javascript

jQueryで全てのIDを取得する方法とは?

2023-11-07 23:29:07

質問

私はセクターのidのリスト(配列)を収集しようとしている

<div id="mydiv">
 <span id='span1'>
 <span id='span2'>
</div>

$("#mydiv").find("span"); 

はjQueryオブジェクトを与えてくれますが、本当の配列ではありません。

私は

var array = jQuery.makeArray($("#mydiv").find("span"));

で、id属性を別の配列に入れるためにforループを使用します。

または

$("#mydiv").find("span").each(function(){}); //but i cannot really get the id and assign it to an array that is not with in the scope?(or can I)

とにかく、私はそれを行うためにjQueryで省略記法があるかどうかを確認したいです。

どのように解決するのですか?

<ブロッククオート

//しかし、私は本当にidを取得し、スコープ内にない配列にそれを代入することはできませんか?

はい、できます!

var IDs = [];
$("#mydiv").find("span").each(function(){ IDs.push(this.id); });

の美しさです。 のクロージャです。 .

なお、正しい軌道に乗りつつも sighohwell クレタス を利用した、より確実で簡潔な方法を指摘しています。 属性フィルタ (一致する要素を ID のあるものに限定する) と jQuery の組み込みの map() という関数があります。

var IDs = $("#mydiv span[id]")         // find spans with ID attribute
  .map(function() { return this.id; }) // convert to set of IDs
  .get(); // convert to instance of Array (optional)