检查jquery的长度?

时间:2014-05-05 18:01:14

标签: jquery

拥有此代码:

if ($('.course-chkbox:checked').length === 0) {
alert('no course is selected');
}

这是检查长度的正确方法吗?我无法在某些浏览器中使用它。所以我问。

更新

我发现实际上没有检查复选框复选框的数量是问题,但问题在于实际检查了多少个复选框。

为什么IE 8中的代码不能低于此代码?长度总是为0!

$(document).on('click', 'label', function(e) { 
var tClicked = $(this);                            
var checkbox = $('#' + $(this).attr('for'));            

if (checkbox.is(':checked')) {  
    tClicked.removeClass('checkbox-checked');      
    checkbox.checked = false;
} else {
    tClicked.addClass('checkbox-checked');            
    checkbox.checked = true;
}

});

复选框选中的类将背景图像添加到标签。

html看起来像这样:

<input class="course-chkbox" type="checkbox"/>
<label for="course_<id>"</label>

2 个答案:

答案 0 :(得分:2)

您在每个浏览器中都可以使用长度检查,因为jQuery正在返回一个具有长度属性的类数组对象。

答案 1 :(得分:0)

因为我在原来的问题中非常不清楚。 请原谅我!我会在这里提供一个答案,以防有人偶然发现这个问题:

如果有人想要设置样式复选框。请注意,当设置为display:nonevisiblity:hidden;

时,I​​E8及以下版本不支持“触发”复选框事件

我把它放在header-file中解决了这个问题:(另一个隐藏它的原因)

<!--[if lte IE 8]>
<style type="text/css">
#adduser .course-chkbox {
display:inline-block !important;
border: 0;
clip: rect(0 0 0 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
}
</style>
<![endif]-->