我有一个无线电元素数组的jquery变量。我想根据值进一步选择一个特定的元素。
下面是我的想法,但我仍然不知道如何实现这一目标。
var gender = 1;
var radiobuttons = $('[name=\'gender\']'); //should contain 2 radio elements
radiobuttons.find('[value=\'' + gender + '\']').prop('checked', true);
HTML
<label>Female<input type="radio" name="gender" value="0"></label>
<label>Male<input type="radio" name="gender" value="1"></label>
答案 0 :(得分:3)
.find()
方法将尝试选择后代元素。由于input
元素是自我关闭的,并且不包含任何后代元素,因此不会选择任何内容。
您似乎想要.filter()
method而不是:
var gender = 1;
var radiobuttons = $("[name='gender']");
radiobuttons.filter(function () {
return this.value === gender.toString();
}).prop('checked', true);
或使用.is()
method:
radiobuttons.filter(function () {
return $(this).is("[value='" + gender + "']");
}).prop('checked', true);
但是,在最初选择元素时使用两个属性选择器会更简单:
var gender = 1;
$("[name='gender'][value='" + gender + "']").prop('checked', true);