jQuery-按值查找单选按钮


Answers:


142

试试这个:

$(":radio[value=foobar]")

这将选择所有具有属性的单选按钮value="foobar"


谢谢,我这样使用它:jQuery.each(cookieObj,function(i,val){$(“:radio [value = val]”)。attr('checked',true);});
面包车

3
@test:试试看:function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Gumbo 2010年

1
@Gumbo如果我们给该函数起一个名字,我们可以这样称呼它吗:$ checkedRadioValues = findChecked(“ value”);
本·塞沃斯

25

我正在使用jQuery 1.6,这对我不起作用: $(":radio[value=foobar]").attr('checked',true);

相反,我使用的是:$('[value="foobar"]').attr('checked',true); 它很好用。

我正在使用的实际代码会先清除无线电并使用prop而不是attr

$('[name=menuRadio]').prop('checked',false);

$('[name=menuRadio][value="Bar Menu"]').prop('checked',true);

这是已修复的错误吗?还是我们应该在价值周围加上引号?
Simon_Weaver

19

这也可以通过以下方式实现:

$('input[type="radio"][value="aaa"]').val();

这将选择值为aaa的无线电


使用.filter()方法:

var radio =  $('input[type="radio"]').filter(function(){
                       return this.value === 'aaa';
                      }).val();

1
这实际上将选择所有单选按钮并更改它们的值aaa然后返回'aaa'
bentman

5

说您在HTML中有以下内容:

<fieldset>
    <input type="radio" name="UI_opt" value="alerter" checked> Alerter<br/>
    <input type="radio" name="UI_opt" value="printer"> Printer<br/>
    <input type="radio" name="UI_opt" value="consoler"> Consoler<br/>
</fieldset>

这样的事情就可以了。

$("fieldset input[name='UI_opt'][checked]").val()

2

完整的选择器如下所示:

bool shipToBilling = $("[name=ShipToBillingAddress][value=True]")

假设您可能有多个这样的单选按钮组

<input name="ShipToBillingAddress" type="radio" value="True" checked="checked">
<input name="ShipToBillingAddress" type="radio" value="False">

<input name="SomethingElse" type="radio" value="True" checked="checked">
<input name="SomethingElse" type="radio" value="False">

像这样(下一个示例)使用ID选择器是不好的,因为您不应有多个具有相同ID的元素。我假设发现此问题的人已经知道这很不好。

$("#DidYouEnjoyTheMovie:radio[value=yes]")

以下有关:radio可能会或可能不会引起关注

因为:radio是jQuery扩展,而不是CSS规范的一部分,所以使用:radio的查询无法利用本机DOM querySelectorAll()方法提供的性能提升。为了在现代浏览器中获得更好的性能,请改用[type =“ radio”]。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.