我有一个 radio 元素数组的 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>
最佳答案
.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);
关于javascript - 过滤单选元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913438/