jQuery判断checkbox选中状态_jquery

前言

神奇的JQuery怎么设置checkbox状态时好时坏?明明同一行代码,断点跟踪确实执行了,但是有时候好使,有时候却没有生效。毕竟对JS不是很熟悉,只是通过JS来处理前端HTML的标签的状态设置时,通过JQuery有时候会更方便些的,但是发现更不好办。

今天尝试实现checkbox全选、全不选功能,与App开发中的效果是一样的,勾选全选则将所有的选项都选中;同样取消勾选某个子项也将全选设置为非选中状态;所有子选项都为选中状态时,将全选设置为选中状态。

由于对JS不是很熟悉,于是尝试各种百度、google,发现出来的文章都是坑爹啊。各种JQuery的,但是为什么我设置了就是没有作用的。起初以为是变量获取不到,于是断点跟踪,对象是取到了的,但是设置JQuery的方法来设置就是没有作用。

搜到的处理方式

这里的checkbox的id为cbxSelectAll,于是尝试这么写:

复制代码 代码如下:

$('#cbxSelectAll').attr('checked', true);

结果是无效的。再尝试修改为:

复制代码 代码如下:

$('#cbxSelectAll').attr('checked', 'checked');

结果是第一次设置生效了,再设置就没有生效。坑爹,这到底是什么东西,怎么时好时坏呢?

然后在设置为false时,这么写:

复制代码 代码如下:

$('#cbxSelectAll').attr('checked', false);
// 也没有作用
//$('#cbxSelectAll').attr('checked', '');

果然是都没有作用。但是通过下面的设置,可以取消选中:

复制代码 代码如下:

$('#cbxSelectAll').removeAttr('checked');

难道是年代久远,这些方法已经不再有效了吗?

最后解决办法

最后的解决办法还是放弃了JQuery,改用Javascript原生的Dom来设置。

下面是设置为全选或者取消全选状态的代码:

varcheckboxes = document.getElementsByName('selectIds');
varselectedCount = 0;
varunSelectCount = 0;
for (var i = 0; i < checkboxes.length; i++) {
varcheckbox = checkboxes[i];
if(checkbox.tagName == "INPUT" && checkbox.checked){
selectedCount++;
} else if (checkbox.tagName == "INPUT" && checkbox.checked == false) {
unSelectCount++;
}
}
if (selectedCount == checkboxes.length) {
document.getElementById('cbxSelectAll').checked = true;
} else if (unSelectCount != checkboxes.length) {
document.getElementById('cbxSelectAll').checked = false;
}

JQuery获取状态

JQuery通过checkbox的is函数来获取状态:

复制代码 代码如下:

varisChecked = $('#cbxSelectAll').is(':checked');

之前尝试过使用attr函数来获取,但是获取的值显示为null:

复制代码 代码如下:

// 显示为null,好生奇怪
varisChecked = $('#cbxSelectAll').attr('checked');

当然,我们也可以直接使用Javascript原生的Dom方式来获取,肯定是没有问题的:

复制代码 代码如下:

varisChecked = document.getElementById('cbxSelectAll').checked;

小结

玩前端JQuery果然要比玩原生的JavaScript要吃力些,虽然有很多时候可以使代码更方便书写。不过还是两者结合来做吧。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索checkbox选中状态
判断checkbox选中状态、jquery checkbox 选中、jquery让checkbox选中、jquery给checkbox选中、jquery使checkbox选中,以便于您获取更多的相关知识。

时间: 2024-11-02 18:14:17

jQuery判断checkbox选中状态_jquery的相关文章

JQuery判断checkbox是否选中及其它复选框操作方法合集_jquery

一.jquery判断checkbox是否选中及改变checkbox状态 jquery判断checked的三种方法: 复制代码 代码如下: .attr('checked):   //看版本1.6+返回:"checked"或"undefined" ;1.5-返回:true或false .prop('checked'): //16+:true/false .is(':checked'):    //所有版本:true/false//别忘记冒号哦 jquery赋值check

javascript-为何jQuery判断已选中的checkbox,Chrome获取的值永远是false而IE是true?

问题描述 为何jQuery判断已选中的checkbox,Chrome获取的值永远是false而IE是true? 代码如下: $("":checkbox"").on(""blur"" function () { console.log($(this).prop(""checked"")); console.log(this.checked);} 在chrome中输出为:false fals

Jquery 改变radio/checkbox选中状态,获取选中的值

 这篇文章主要介绍了Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助 //如果之前有选中的,则把选中radio取消掉 $("#tj_cat .pro_category").each(function() {  if ($(this).attr('checked')){                         $(this).attr('checked' ,false);                

jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码

 本篇文章主要是对jQuery判断checkbox(复选框)是否被选中以及全选.反选实现代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jQuery判断checkbox(复选框)是否被选中: if($("#id").attr("checked")==true)   jQuery实现checkbox(复选框)选中.全选/反选代码:    代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0

jQuery判断checkbox,radio是否选中的3种方法

jQuery判断checkbox是否选中的3种方法 方法一: if ($("#checkbox-id").get(0).checked) { // do something } 方法二: if($('#checkbox-id').is(':checked')) { // do something } 方法三: if ($('#checkbox-id').attr('checked')) { // do something } function checkInfo(){ $("

jQuery 更改checkbox的状态,无效的解决方法_jquery

今天写页面遇到复选框动态全选或全不选问题,正常写法如下: $("#tb").find("input[type='checkbox']").attr("checked","checked"); but!第一次点击全选按钮input显示对勾,第二次就不行了,查了下有建议用prop的,亲测有效.那两者有啥区别呢? jQuery函数attr()和prop()的区别: 1.操作对象不同 "attr"和"pr

jQuery获取checkbox选中的值_jquery

1.问题背景 有几个多选框,选择其中的几个,获取选中的值 2.设计结果如下图所示: 3.设计源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

javascript-js怎么判断checkbox的状态?

问题描述 js怎么判断checkbox的状态? 当所有checkbox(默认都选中)中的一个取消选中,那么怎么同时取消全选的checkbox.就像淘宝购物车上的checkbox一样的功能. 解决方案 js中radio和checkbox中选中状态的判断用JS修改checkbox的选中状态js原生支持checkbox框半选状态 解决方案二: 这个只能给第一个checkbox添加点击事件,当单独一个选中时,取消全选 解决方案三: 所有checkbox添加onclick事件,如果当前不是checked,

vba-VBA 循环遍历界面获取CheckBox 选中状态,并返回CheckBox.Text上的内容

问题描述 VBA 循环遍历界面获取CheckBox 选中状态,并返回CheckBox.Text上的内容 循环获取的代码如下,界面中包含了 N个GroupBox N 个CheckBox,如遇到GroupBox那么循环跳入继续找CheckBox,直接完成遍历 查找到所有打勾的CheckBox名字 最后 返回 Sub SearchControls(ByRef rControls ByRef value) For Each sControl In rControls If TypeOf sControl