2

我正在尝试编写一个函数,如果单击一组单选按钮的任何标签,将调用该函数。所以我想要一种方法来引用单选按钮组的所有标签。

从另一个线程(这个)我读到我可以做到

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

其中[radio_name]是单选按钮组的名称。事实上,我只是想在引用的线程中实现代码。不幸的是,它对我不起作用,不知道为什么。

其他一些线程建议您可以使用 选择特定标签,标签适用的单选按钮的 id 在$('label[for=[radio_option_id]]')哪里。[radio_option_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(){
    ...
});

这适用于包含radiofor属性中的标签

方程。

<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 回答