0

私は次のようなhtmlを持っています:

<form>
    <div class="row">
        <input type="radio" class="radio">
        <label>Text</label>
        <input type="radio" class="radio">
        <label>Type</label>
    </div>
</form>

次に、各ラベルの直後にクラスを適用する必要があります<input type="radio">

私は次のようにjqueryを使用しています:

if($('input').hasClass('radio')){
    $(this).next().addClass('radio-url');
}

<label>ラジオタグの直後にクラス「radio-url」をそれぞれに追加しようとしています。これで私はどんな間違いをしましたか?

4

9 に答える 9

1

この回答は、あなたの質問に直接答えるものではありません!

ラベルがラジオボタンに関連付けられるように、ラベルにはfor属性が必要だと思います。これにより、ユーザーは次のことが可能になります。

  1. ラベルをクリックしてラジオボタンをチェック!
  2. 入力タイプがテキストの場合、ラベルをクリックするとテキスト入力がフォーカスされます
  3. アクセシビリティ上の理由から

HTML

<div class="row">
    <input type="radio" class="radio" id="text"></input>
    <label for="text">Text</label>
    <input type="radio" class="radio" id="type"></input>
    <label for="type">Type</label>
</div>

JQuery

ラジオ要素の ID を使用してラベルを検索します。

$('input[type="radio"]').each(function(){
    var radioId = $(this).attr("id");
    $("label[for='" + radioId + "']").addClass('radio-url');
});

フィドル: http://jsfiddle.net/78zAB/

于 2013-10-29T15:47:01.497 に答える
0

デモ

$('input.radio').each(function () {
    $(this).next().addClass('radio-url');
})
于 2013-10-29T15:31:11.977 に答える
0

CSS 要素 + 要素セレクターを使用:

$('input:radio + label').addClass('theClass')

http://jsfiddle.net/ttnUU/

于 2013-10-29T15:31:29.733 に答える
0

最適に動作します

$('input[type=radio]').next('label').addClass('radio-url');

http://jsfiddle.net/q76FJ/

于 2013-10-29T15:32:03.837 に答える