Как мне использовать JQuery, чтобы найти переключатель по его значению?
Ответы:
Попробуй это:
$(":radio[value=foobar]")
Это выберет все переключатели с атрибутом value="foobar"
.
function(i, val) { $(":radio[value="+val+"]").attr('checked',true); }
Я использую 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);
Этого тоже можно добиться:
$('input[type="radio"][value="aaa"]').val();
Это выберет радио со значением aaa
С .filter()
методом:
var radio = $('input[type="radio"]').filter(function(){
return this.value === 'aaa';
}).val();
aaa
затем вернуть'aaa'
скажем, у вас есть что-то вроде этого в 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()
Полный селектор будет выглядеть так:
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">
Использование такого селектора идентификаторов (следующий пример) - плохо, потому что у вас не должно быть нескольких элементов с одним и тем же идентификатором. Я предполагаю, что кто-то, задавший этот вопрос, уже знает, что это плохо.
$("#DidYouEnjoyTheMovie:radio[value=yes]")
Следующее :radio
может представлять интерес, а может и не представлять его
Поскольку: radio является расширением jQuery и не входит в спецификацию CSS, запросы, использующие: radio, не могут использовать преимущества повышения производительности, обеспечиваемые собственным методом DOM querySelectorAll (). Для повышения производительности в современных браузерах используйте вместо него [type = "radio"].