我有一个<div>
rabioboxs:
<div id='RB-01'>
<span>Item_1</span><input type='radio' name='RB01' value='1'><br />
<span>Item_2</span><input type='radio' name='RB01' value='2'><br />
<span>Item_3</span><input type='radio' name='RB01' value='3'><br />
</div>
然后用jquery我想得到一个被检查的无线电单元:
var obj = null;
var tempId = "RB-01";
if ($('div[id=' + tempId + ']')) {
$('div[id=' + tempId + '] input').each(function() {
if ($(this).checked == true) { obj = $(this); }
});
}
但最后obj = null。
答案 0 :(得分:1)
你应该这样做:
if ($(this).is(':checked') == true)
或
if (this.checked == true)
当然rember至少要选中复选框。在这里http://jsfiddle.net/nicolapeluchetti/Ky6q2/和http://jsfiddle.net/nicolapeluchetti/TEw53/
答案 1 :(得分:1)
var radio = $('#RB-01 input:radio:checked');
console.log(radio);
答案 2 :(得分:0)
您可以像这样使用:checked
selector:
var selectedRadios = $('#RB-01 input:checked');
答案 3 :(得分:0)
jQuery对象没有任何checked
属性。只是不要从元素创建一个jQuery对象。
注意:您可以在选择器中使用#
运算符,而不是[id=...]
。在循环之前,您不需要检查选择器是否返回任何内容,循环空的jQuery对象是完全有效的。您不必将布尔值与true
进行比较,以检查它是否为真。
var obj = null;
var tempId = "RB-01";
$('div#' + tempId + ' input').each(function() {
if (this.checked) obj = $(this);
});
您甚至可以使用选择器来查找已选中的元素:
var tempId = "RB-01";
var ch = $('div#' + tempId + ' input:checked');
var obj = ch.length > 0 ? ch.last() : null;
(注意:我使用last
方法获取最后一个匹配的元素,使其与循环代码的工作方式相同。如果您知道只有一个选中的元素,那么您也可以请改用first
方法。)