1

次のリッカート スケールを html に実装しています (最後の非表示フィールドに注意してください)。

<ul class="likert">
    <li class="likert">Not Empathetic<input type="radio" value="1" />
    <li class="likert"><input type="radio" value="2" />
    <li class="likert"><input type="radio" value="3" />
    <li class="likert"><input type="radio" value="4" />
    <li class="likert">Very Empathetic<input type="radio" value="5" />
</ul>
<input class="answer-key" type="hidden" value="5"/>

選択したラジオ ボタンの値と非表示フィールドに保存されている値を比較しようとしています。

jqueryには、次のものがあります。

$(document).ready(function(){

//click handler
$('input[type=radio]').click(function(){

    var value = $(this).val();

    //DOESN'T WORK
    var answer = $(this).parent().siblings('.answer-key').val());

    compute_score(answer,value);

    });

});

非表示の入力の値にアクセスするにはどうすればよいですか? このページには複数の非表示の回答があるため、この特定のリッカート スケールの非表示の回答の値を取得する必要があります。非表示の回答を別の場所 (おそらく<ul>? 内) に移動することにオープンです。

4

5 に答える 5

1

.parentでは十分ではありません ( を選択するだけ<li>です)。私はあなたが欲しいと思う.closest('ul').siblings...

于 2012-12-04T16:55:53.053 に答える
0

ここで正しい要素を取得していません。siblings('.answer-key')ではなく、li要素のチェックですul

$('input[type=radio]').click(function(){
    var value = $(this).val();

    // $(this)                                  equals <input[type=radio]>
    // $(this).parent()                         equals <li class="likert">
    // $(this).parent().siblings('.answer-key') equals nothing!
    var answer = $(this).parent().siblings('.answer-key').val();
    compute_score(answer,value);
});

$(this).parent().parent()を取得するにはが必要ですul。次に、兄弟を確認できます。したがって、これでうまくいくはずです:

 var answer = $(this).parent().parent().siblings('.answer-key').val();
于 2012-12-04T16:56:35.803 に答える
0

これを試して

var answer = $(this).closest('ul').next('.answer-key').val();

最初にulに到達する必要があります..次に.next、次の兄弟を取得するために使用します

于 2012-12-04T16:57:21.437 に答える
0

ここで、親は li 要素を選択します

$(this).parent().siblings('.answer-key').val());

ul に対応する隠し要素を取得するには、closest("ul").siblings に変更します。

ありがとう

于 2012-12-04T16:58:52.927 に答える
0

html

<ul class="likert">
    <li class="likert">Not Empathetic <input name='radio_check' type="radio" value="1" />
    <li class="likert"><input type="radio" name='radio_check' value="2" />
    <li class="likert"><input type="radio" name='radio_check' value="3" />
    <li class="likert"><input type="radio" name='radio_check' value="4" />
    <li class="likert">Very Empathetic <input name='radio_check' type="radio" value="5" />
</ul>
<input class="answer-key" type="hidden" value="5"/>

Javascript

jQuery(document).ready(function($){

//click handler
$('input[type=radio]').on('click',function(event){

    var value = $(this).val();

//call your javascript function
    compute_score(answer, $('input[type="hidden"].answer-key').val() );
event.preventDefault();
    });
});

// セレクターの一部として名前を使用し、それが is:checked でチェックされているかどうかを確認する場合に備えて... ラジオ オプションに名前を追加しました.. 1 つしか選択できないため、同じ名前を持つことができます

于 2012-12-04T17:00:57.147 に答える