使用jQuery选择单选按钮组的所有标签

时间:2013-01-10 16:36:31

标签: javascript jquery selector

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

从另一个帖子(this one)我读到我可以做到

$('#[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 );

2 个答案:

答案 0 :(得分:3)

使用ATTR contains selector

$('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(){

});

答案 1 :(得分:2)

听起来我只需要将一个类应用于不同的标签并以这种方式访问​​它们。这样您就可以按类对标签进行分组。

$('label.className').click(function(){
     ...
});