【问题标题】:Use jQuery to select all labels of radio button group使用jQuery选择单选按钮组的所有标签
【发布时间】:2013-01-10 16:36:30
【问题描述】:

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

从另一个线程 (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 );

【问题讨论】:

  • @Blowsie,完成,在原帖中。

标签: javascript jquery selector


【解决方案1】:

使用ATTR contains selector

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

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

等式

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

});

【讨论】:

  • 我不明白。标签的for是radio_option_id,而不是radio_name,那么为什么选择标签会起作用呢?反正我试过了,还是不行。
  • @baixiwei 当没有 HTML 时总是很难回答,因为可能有很多不同的方法。我添加了一些对你有用的代码。
  • 效果很好,谢谢!知道为什么最初的尝试没有奏效吗?
  • ATTR 包含在我修改后的答案中看到的选择器也应该适用于您的场景。
【解决方案2】:

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

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

【讨论】:

  • 谢谢!实际上我已经尝试过了,而且效果很好……我应该提到的,但是我发帖的时候忘记了。但是,是否有某种方法可以在不创建附加类的情况下做到这一点?为什么我原来的方法不起作用?
  • @baixiwei 您的原始代码不起作用,因为label 不是input 的子代,而是sibling。看到您的 html 后,我打算发布一个更好的解决方案,但 Blowsie 的解决方案有效。
猜你喜欢
  • 1970-01-01
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-26
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
相关资源
最近更新 更多