次のような HTML があります。
<input type="radio" class="MyRadio" name="TheName">
<label for="TheLabel">the text</label>
ラベルのテキストを変更するにはどうすればよいですか?
試した
$('#TheLabel').text('My New Text');
うまくいきません。それを行う方法は何ですか?
ありがとう。
次のような HTML があります。
<input type="radio" class="MyRadio" name="TheName">
<label for="TheLabel">the text</label>
ラベルのテキストを変更するにはどうすればよいですか?
試した
$('#TheLabel').text('My New Text');
うまくいきません。それを行う方法は何ですか?
ありがとう。
ここでいくつかのことが変わりました。「for」はラベルを識別するのではなく、ラベルを付けるコントロールを識別します。「for」を正しく使用する必要があり、ID を与える必要があります。
<label for="TheName" id="TheLabel">The Label Text</label>
それで:
$('#TheLabel').text('My New Text');
動作します。
より簡単な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');
「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]' )
更新: @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');
間違ったセレクターを使用しています (この場合TheLabel
は ID であるかのように扱っています)。次のようなものを使用できます。
$('label[for=TheLabel]').text('My New Text');
を変更して、すでに持っているコードを機能させることもできfor
ますid
。