options
最初にすべてのクラスをクリアしてから、対応する文字でオプションにクラスを追加しようとしています。これが私の関数です:
function setAnswer(b, c){
$('#'+b+' .option').removeClass("answer");
$('#'+b+' .option'+c).addClass("answer");
}
とフォーム
<div id="belh" class="options">
<label>a.</label><input class="option optiona"><input onClick="setAnswer(this.parentnode.id, this.classname)" type="radio" class="a" name="answer">
<label>b.</label><input class="option optionb"><input onClick="setAnswer(this.parentnode.id, this.classname)" type="radio" class="b" name="answer">
<div class="clear"></div>
<label>c.</label><input class="option optionc"><input onClick="setAnswer(this.parentnode.id, this.classname)" type="radio" class="c" name="answer">
<label>d.</label><input class="option optiond"><input onClick="setAnswer(this.parentnode.id, this.classname)" type="radio" class="d" name="answer">
</div>
divのIDはbelh
動的に変化するため、関数のthis.parentnode.id
変数に渡してこれを実行できます。b
$('#'+b+' .option').removeClass("answer");
ここで使用する文字(a、b、c、d)を取得できるように、渡す
すべてのオプション要素からクラスを削除します。this.classname
c
$('#'+b+' .option'+c).addClass("answer");
そのため、クラスのあるラジオボックスをクリックすると、div内のクラスのc
あるすべてのフィールドでクラスの回答が失われます(クラスがある場合)。次に、クラスのあるフィールドにクラスが追加されます。(なぜなら:) 。何らかの理由で私の機能が機能していません。変数を間違った方法で渡していると思います。option
belh
optionc
answer
$('#'+b+' .option'+c).addClass("answer");