如何从每个函数获取对象

时间:2011-07-29 11:46:02

标签: javascript jquery

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

4 个答案:

答案 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方法。)