jQuery-选择值相等的元素

时间:2018-07-19 17:30:46

标签: javascript jquery

我正在尝试找到一种简单的方法来根据渲染时的初始值使用jQuery检查单选选项。

<form>
<input type="radio" name="myRadio" value="weekly" />Weekly <br />
<input type="radio" name="myRadio" value="monthly" />Monthly <br />
<input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>

和Javascript:

$('input [value="weekly"]').prop("checked", true);

我在这里设置了JS小提琴: http://jsfiddle.net/xpvt214o/448712/

有趣的是,它可以使用本机浏览器document.querySelector起作用,但似乎不适用于jQuery。我想坚持使用jQuery的方法来确保代码的一致性。

此外,我要按值选择的原因是我正在调用的JSON API返回枚举的字符串类型。如果我必须为每个单选选项添加唯一的ID属性,然后使用开关盒根据枚举的字符串类型选择适当的按钮,那将是非常烦人的事情。

2 个答案:

答案 0 :(得分:2)

简单删除选择器和属性之间的空格:

$('input[value="weekly"]').prop("checked", true);

$('input[value="weekly"]').prop("checked", true);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <input type="radio" name="myRadio" value="weekly" />Weekly <br />
  <input type="radio" name="myRadio" value="monthly" />Monthly <br />
  <input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>

有了空格,您告诉jQuery选择具有[value="weekly"]但属于input元素的子元素的元素

答案 1 :(得分:0)

$(function(){
          $('input[type="radio"][value="weekly"]').prop('checked', true);    

        })   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<input type="radio" name="myRadio" value="weekly" />Weekly <br />
<input type="radio" name="myRadio" value="monthly" />Monthly <br />
<input type="radio" name="myRadio" value="yearly" />Yearly <br />
</form>