3

私は次のような要素を取得するユーザースクリプトを書いています:

var theElement = $('div.someClass:last');

クラスの最後の要素を取得して、.someClass解析できるようにします。

これが私の質問の出番です。このページには、時々新しいものを動的に追加する別のスクリプトがあります<div class="someClass">。常にクラスが.someClass選択されたページの最後の要素が必要です。

Javascript / jQueryには常に最新の要素がありますか、それとも手動で「更新」する必要がありますか?

4

3 に答える 3

4

セレクターが評価され、結果が返されます。求めていることを実行したい場合は、そのセレクターを再評価する必要があります。

于 2013-02-12T19:29:07.423 に答える
4

いいえ..自動的に更新されません。

セレクターで直接何かを変更するたびに、それを再度キャッシュすることをお勧めします。

必要なセレクターは、ライブノードリストではありません。

そのような場合、セレクターに変更があるように思われる場合は、最初のケースではまったくキャッシュしないことを好みます。

キャッシュされたセレクターではなく、セレクターを直接使用できるようにします。

于 2013-02-12T19:29:50.060 に答える
4

Sushanthの答えは正しいですが、この記事によると、

var theElements = document.getElementsByClassName('someClass');

そして確実に使用する

var theElement = $(theElements[theElements.length - 1]); // wrapping in $() is optional

$(selector)は実行するのに非常にコストのかかる操作であるため、これは実行する価値があります。

編集-http : //caniuse.com/getelementsbyclassnameを介してie9以降のみ

于 2013-02-12T19:38:49.770 に答える