1

つまり、これが私のページ全体のコードだとしましょう。

<html>
  <body>
    <textarea></textarea>
  </body>
</html>

次に、そのテキストエリアのコンテンツを更新します。そのテキストエリアにIDを追加することはできません。そのままにしておく必要があります。

私の質問は、通常、多くのテキスト領域があるので、次のように更新します。

$('textarea').each(function () {
  $(this).text('foo');
});

しかし、この場合、テキストエリアが1つしかないので、これを書くことはできますか?

$('textarea').text('foo');

私は.text例としてのみ使用しています。特定のタイプの要素が1つしかない場合に、上記の2つのコードが同じ効果を持つかどうかを確認したいだけです。

4

4 に答える 4

2

使用している場合は、選択したすべての要素のテキストコンテンツが変更されるtextため、使用する必要はありません。each

http://jsfiddle.net/GhVGP/

于 2012-09-10T08:09:01.530 に答える
2

どちらのコードも、テキスト領域の量に関係なく、まったく同じ効果が得られます。

于 2012-09-10T08:11:48.853 に答える
1

はい、それらは同等です。

ドキュメントによると:

一致した要素のセット内の各要素のコンテンツを指定されたテキストに設定します。

したがって、コレクションに複数の要素が含まれている場合、そのコレクション内のすべての要素のテキストは指定されたものに設定されます。

したがって、.each()この場合、コレクションをループするために使用することは無意味であり、速度も遅くなります。


一般的に、jQueryのすべての操作メソッドは、コレクションのすべての要素を操作できます。

セッターはコレクション全体を操作します。

  • addClass 一致した要素の各セットに、指定されたクラスを追加します。
  • height 一致するすべての要素のCSSの高さを設定します。

ゲッターは、コレクションの最初の要素を操作します。

  • height 一致した要素のセットの最初の要素について、現在計算されている高さを取得します。

text(getterとして)少し異なります。コレクションでgetterとして使用される場合、コレクション内の要素の結合されたテキストを返すためです。

子孫を含む、一致した要素のセット内の各要素の結合されたテキストコンテンツを取得します。

于 2012-09-10T08:13:37.927 に答える
0

.text複数の要素を参照するときにこのメソッドを使用できます。セッター.text(string)はjQueryオブジェクトのすべての要素に影響を与え、ゲッター.textはすべての要素のテキストを連結します。.text(function(index, text))変更するすべての要素に対して関数を呼び出す、 もあります。http://api.jquery.com/text/

同じことが他のほとんどのメソッドにも当てはまります。セッターはすべての要素に影響を与え、ゲッターは(通常)最初の要素を読み取ります。

いつでもどの機能でも使用できます。jQueryオブジェクトに含まれる要素が1つだけの場合、オブジェクトの取得に使用されるセレクターが複数の要素を参照するかどうかに関係なく、要素にアクセスするメソッド(text、value、css)が使用され、選択された単一の要素にアクセスします。 。

セレクターが1つの要素のみを選択することをさらに確認したい場合は、:first pseudo-class($("textarea:first"))を使用できます。

ちなみに、aは(ではなく)(ではなく)でtextareaアクセスする必要があります。.value(...)input.text(...)

于 2012-09-10T08:22:22.103 に答える