0

まとめた答え

ここに似たようなものに遭遇した場合、簡単な答えは次のとおりです。

私のコードでは、チェックされたすべてのラジオの値を取得する :checked ラジオ入力の .val() 値を取得します。これにより、不要なクラスが発生します。.click コールバックを利用して、クリックされた項目の特定の入力値 (私の場合はラジオ ラベル) の .val() 値を取得できます。

これが私が抱えていた問題に対する別の優れた解決策です.クラスを追加し、チェックされた無線に基づいてクラスを削除しますか? およびこのソリューションへのjsbin http://jsbin.com/ugufi/27/

これが同じ問題を抱えている可能性のある他の人に役立つことを願っています...非常に簡単な答え..すべてに感謝します!

質問

ここに私が持っているコードがあります

http://jsbin.com/ugufi/11/

私が苦労しているのは、クラスをターゲットに追加した後にクラスを削除する解決策を見つけることです。

ラジオ ボタンのリストがあり、:checked ラジオ入力の値を取得し、その値をクラスに入れています。

新しいラジオがチェックされると、クラスexに追加し続けます

    <div class="radio1 radio2 radio3 radio4"></div>

必要なもの (非常に単純なことはわかっていますが、何を使用すればよいかわかりません)。

   <div class="radio1"></div><!-- Radio input value with radio1 is checked -->

次に、新しいラジオ入力を確認すると

    <div class="radio4"></div><!-- Radio input value with radio4 is checked -->

PS。私はこの質問を調べて多くの答えを見つけましたが、それらはすべて何らかの種類の .siblings() または .parent() コールバックを使用しています。それらは優れたソリューションですが、私のコードでは入力とターゲットが互いに離れています。

4

2 に答える 2

0

私の答えをより完全なものに変更します:

$('.moon-generator-attr').click(function() {
  var tabid = $(this).val();

  $('.icon-wrap a.icon').attr('class','icon icon-'+tabid);
  alert($('.icon-wrap a.icon').attr('class'));
});

これにより、クラス アイコンと任意の 2 番目のクラスが作成されます。そうすれば、引き続き要素にアクセスできます$('.icon-wrap .icon')

.icon-wrap div に「a」が 1 つしかない場合にも、これを行うことができます。

$('.moon-generator-attr').click(function() {
  var tabid = $(this).val();

  $('.icon-wrap a').attr('class','icon-'+tabid);
  alert($('.icon-wrap a').attr('class'));
});
于 2013-06-28T15:09:13.577 に答える
0

古いクラスを削除 + 新しいクラスを追加

$(this).removeClass().addClass('icon-'+tabid+''); 

完全なコード:

$('.moon-generator-attr').click(function() {
    var tabid = $('.moon-generator-attr:checked').val();

    $(this).removeClass().addClass('icon-'+tabid+''); 

      alert($('.icon-wrap a.icon').attr("class"));


});
于 2013-06-28T15:04:26.320 に答える