2

ラジオボタンのグループのラベルのいずれかがクリックされた場合に呼び出される関数を作成しようとしています。そこで、ラジオボタングループのすべてのラベルを参照する方法が必要です。

別のスレッド(これ)から私は私ができることを読んだ

$('#[radio_name] label').click(function(){
    ...
});

ここ[radio_name]で、はラジオボタンのグループの名前です。実際、私は参照されているスレッドにコードを実装しようとしています。残念ながら、それは私にはうまくいきません。理由はわかりません。

他のいくつかのスレッドは、で特定のラベルを選択できることを提案しました$('label[for=[radio_option_id]]')。ここ[radio_option_id]で、はラベルが適用されるラジオボタンのIDです。ただし、これは単一のラベルを選択する場合にのみ機能します。IDが異なるグループ内のすべてのラベルを選択する必要があります。

編集:これは、以下で要求されるより完全なコンテキストです。

var content = "<form id='question_form' name='question_form' action=''>" + page.text;
content += "<div id='radio_options'>";
for ( var i=0; i<page.answers.length; i++ ) {
    content += "<input type='radio' name='radio_option' id='radio_option_" + i.toString() + "' value='" + i.toString() + "'><label for='radio_option_" + i.toString() + "'>" + page.answers[i] + "</label><br>";
}
content += "</div>";
content += "<p><input type='submit' id='submit_button' name='submit_button' value='Submit'></p></form>";
display_loc.html( content );
4

2 に答える 2

3

ATTR包含セレクターを使用する

$('label[for*="radio"]').click(function(){
    ...
});

これは、属性radio内に含まれるラベルに対して機能しますfor

<input type="radio" name="emotion" id="radio_sad" />
<label for="radio_sad">Sad</label>
<input type="radio" name="emotion" id="radio_happy" />
<label for="radio_happy">Happy</label>

アップデート

あなたのhtmlコードのためにあなたは以下をすることができます。

$('#radio_options label').click(function(){

});
于 2013-01-10T16:39:17.367 に答える
2

さまざまなラベルにクラスを適用し、その方法でそれらにアクセスする必要があるように思えます。そうすれば、ラベルをクラスごとにグループ化できます。

$('label.className').click(function(){
     ...
}); 
于 2013-01-10T16:43:40.457 に答える