0

次のような HTML があります。

<input type="radio" class="MyRadio" name="TheName">
<label for="TheLabel">the text</label>

ラベルのテキストを変更するにはどうすればよいですか?

試した

$('#TheLabel').text('My New Text');

うまくいきません。それを行う方法は何ですか?

ありがとう。

4

5 に答える 5

2

ここでいくつかのことが変わりました。「for」はラベルを識別するのではなく、ラベルを付けるコントロールを識別します。「for」を正しく使用する必要があり、ID を与える必要があります。

<label for="TheName" id="TheLabel">The Label Text</label>

それで:

$('#TheLabel').text('My New Text');

動作します。

于 2012-04-04T14:23:51.913 に答える
1

より簡単なjquery操作を可能にするラベルを参照するためにIDを使用します

次に、jquery .html()で好きなようにタグの内部を変更できます。または、単にテキスト操作が必要な場合は、.text()関数で同じ結果が生成されます。

これは、望ましい結果の例を示す jsfiddleです。

HTML:

<input type="radio" class="MyRadio" name="TheName">
<label id="mylabel" for="TheLabel">the text</label>​

Jクエリ:

$('#mylabel').text('My New Text');​

また

$('#mylabel').html('My New Text');​
于 2012-04-04T14:25:09.647 に答える
0

「for」属性は、ラベルではなく入力を参照しています。ラベルを適切に識別するためのベスト プラクティスは、ラベルに ID を付与することです。これは、検索を高速化するための良い習慣です。

HTML:

<input type="radio" class="MyRadio" name="TheName">
<label for="TheName" id="TheLabel">the text</label>

jQuery セレクター:

$( '#TheLabel' )

ただし、元の HTML を使用して for 属性で要素を取得したい場合は、次のようにすることができます。

$( 'label[for=TheLabel]' )
于 2012-04-04T14:49:22.103 に答える
0

更新: @Mark の回答を見ると、コードが間違っています。 「for」属性は入力を指す必要があります。 これを修正するために答えをクリーンアップしました。

テキストボックスの #id ではなく、属性を均等に一致させます (ラベルには ID がありません)。

<input type="radio" class="MyRadio" name="TheName" id="TheName">
<label for="TheName">the text</label>​​​​​​​​​​​

$('label[for="TheName"]').text('This is my new text');​

HTML で実際に動作している jsFiddle を確認してください。

于 2012-04-04T14:23:06.013 に答える
0

間違ったセレクターを使用しています (この場合TheLabelは ID であるかのように扱っています)。次のようなものを使用できます。

$('label[for=TheLabel]').text('My New Text');​​​

を変更して、すでに持っているコードを機能させることもできforますid

于 2012-04-04T14:23:46.763 に答える