0

積極的に変化する Javascript/jQuery デバイスのコーディング方法を改善しようとしています。コードを簡素化するために私が行っていることの 1 つは、要素のコレクションを次のように jQuery オブジェクトに格納することです。

var links = $('a');

これにより、その jQuery オブジェクトを常に再作成する必要がないため、処理時間を節約できます。次に、これらの要素の外観に影響を与えるコードを実行します。

links.css('color', '#ff0000');

問題は、スクリプトの他の部分で、そのコレクションに追加する新しいリンクを作成し、それを順次変更したいということです。しかし、そのコレクションに何かをしようとすると、もちろん元のセットにのみ影響します:

links.css('color', '#ffff00');

私の質問は次のとおりです。コレクションを再定義して、マークアップにさらに追加すると変化する要素のjQueryコレクションを作成する方法はありますか?

4

1 に答える 1

0

ドキュメントの getElementsByTagName および getElementsByClassName 関数によって返される htmlcollections は、dom の更新時に自身を更新し続けます。

var htmlcollection = document.getElementsByTagName('a);
console.log(htmlcollection.length); // returns 0;

$('body').append("<a/>");
console.log(htmlcollection.length); //returns 1;

毎回 $(htmlcollection) を使用できます。すでにjqueryに要素を提供しているので、より効率的だと思います。そして、これらの要素は毎回 dom で検索する必要はありません。

于 2013-05-31T20:21:33.670 に答える