0

jQuery セレクターが一致する DOM 要素のオブジェクトを返すことはわかっています。

typeof $('p'); // returns "object"

しかし、オブジェクト内のすべての要素にアクセスしようとすると、最初の効果だけのようです。

$('p').html('test'); // only sets the first <p></p> to test

私は私ができることを知っています

$('p').each(function() { $(this).html('test') });

しかし、これは好ましい方法ですか?質量属性を設定する他の方法はありますか?


編集:申し訳ありませんが、私は間違ったタグにアクセスしようとしていました:(そして、それはjQueryの問題とは無関係でした.

4

5 に答える 5

3

すべてに適用する場合pは、ループする必要はありません。次の方法で申請できます。

$("p").html('test');

jsフィドル

于 2012-09-25T15:53:51.923 に答える
2

これは正しくありません。一致するすべてのjQuery.html()要素が設定されます。ドキュメントを参照してください。

一致した要素のセット内の各要素の HTML コンテンツを設定します。

http://api.jquery.com/html/

実際の例を参照してください: http://jsfiddle.net/zqYgQ/


ただし、一部のメソッドは最初に一致する要素にのみ適用されることは正しいです。その場合、あなたの方法がベストプラクティスになります:

$('p').each(function() { 
   $(this).someMethod();
});

逆に、一致したすべてに適用されるメソッドの最初の要素にのみ適用する場合は、次のいずれかの方法を使用して、最初の要素のみをフィルタリング/選択できます。

$("p:first").method();

$("p")[0].method();
于 2012-09-25T15:55:17.663 に答える
0

いいえ、最初の だけを設定するのではなく、pすべてを変更します。たとえば、このフィドルを参照してください

于 2012-09-25T15:55:06.920 に答える
0

そうではありません: http://jsfiddle.net/TjxyL/

于 2012-09-25T15:55:16.103 に答える
0

あなたは間違っていますが、すべての要素を設定します。参照: Fiddle

<p></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>

<script>
    ​$('p').html('test');​
</script>
于 2012-09-25T15:55:27.507 に答える