我的网页上有3个单选按钮,如下所示。
<label for="theme-grey">
<input type="radio" id="theme-grey" name="theme" value="grey" />Grey</label>
<label for="theme-pink">
<input type="radio" id="theme-pink" name="theme" value="pink" />Pink</label>
<label for="theme-green">
<input type="radio" id="theme-green" name="theme" value="green" />Green</label>
在jQuery中,当这三个中的任何一个被点击时,我想得到所选单选按钮的值。在jQuery中,我们有id(#)和class(.)选择器,但如果我想通过它的名字找到一个单选按钮,像下面这样怎么办?
$("<radiobutton name attribute>").click(function(){});
请告诉我如何解决这个问题。
这样应该就可以了,所有这些都在文档中,其中有一个与此非常相似的例子。
$("input[type='radio'][name='theme']").click(function() {
var value = $(this).val();
});
我还应该注意到你在该片段中有多个相同的ID。这是无效的HTML。使用类来分组元素,而不是ID,因为它们应该是唯一的。
要确定哪个单选按钮被选中,请尝试这样做。
$('input:radio[name=theme]').click(function() {
var val = $('input:radio[name=theme]:checked').val();
});
该事件将对该组中的所有单选按钮进行捕捉,所选按钮的值将被放在val中。
*更新:发帖后,我认为Paolo的答案更好,因为它少用了一次DOM遍历。我让这个答案继续有效,因为它展示了如何以一种跨浏览器兼容的方式获得所选元素。