为什么jquery选择器总是在If条件下返回true?

时间:2016-07-12 20:03:19

标签: javascript jquery html if-statement

为什么总是这样?

<input type="checkbox" name="c1" id="c1" value="&controls=0">Hide Controls
if ($('input[name=c1]:checked')){ 
    var controls = $('#c1').val();  
} else { 
    var controls = ""; 
}
alert(controls);

这是一个有价值的问题吗?但正如你所见,我需要一个价值......

3 个答案:

答案 0 :(得分:0)

有人给我减1,所以我决定编辑我的答案:

这是检查复选框是否已选中的方法:

$('input[name=c1]').is(':checked')

这是您获得复选框价值的方式:

$('input[name=c1]').val();

答案 1 :(得分:0)

因为表达式$(&#39; input [name = c1]:checked&#39;)返回一个对象,这是真的。     alert($(&#39; input [name = c1]:checked&#39;)); // [object object]

该对象具有值为0或1

的length属性

正确的选择是检查长度。有必要检查他

if($('input[name=c1]:checked').length)
{
    var controls = $('#c1').val();
}else{
    var controls = "";
}
alert(controls);

https://api.jquery.com/checked-selector/

答案 2 :(得分:0)

Jquery选择器返回一个对象,而选择器对象总是如此。

如果要检查元素是否存在,可以使用.is()方法或.length属性。

if ($("input[name=c1]").is(":checked"))
// Or 
if ($("input[name=c1]:checked").length)