javascript - 过滤单选元素

标签 javascript jquery

我有一个 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/

相关文章:

javascript - 将 JavaScript 中的 JSON 数组与

javascript - 使用 JavaScript 缩放每个图像

javascript - 如何使用 JQUERY 为多个 DIVS 内的按钮编写 CLICK 函数

jquery - Tastypie 不发送 cookie

java - HtmlUnit 不可能的站点?

javascript - 如何将 "this week"按钮变成下拉菜单?我究竟做错了什么?

c# - 如何获取我的 Canvas 的快照

javascript - jQuery,根据匹配的页面/元素 ID 计算元素的 n 位置

javascript - 选择 bootstrap 下拉菜单,jquery 不工作

javascript - jQuery Mobile : document ready vs.页面事件