博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决jquery操作checkbox火狐下第二次无法勾选问题
阅读量:4679 次
发布时间:2019-06-09

本文共 1991 字,大约阅读时间需要 6 分钟。

最近在学习jQuery(版本jquery-1.9.1.js),要求用jQuery实现全选/全不选、反选,在IE(IE8)中没有问题,但在火狐浏览器中调试的时候出现了一些小问题,达不到效果。

html代码如下:

你爱好的运动是
足球
篮球
羽毛球
乒乓球

jQuery代码:

复选框绑定了click事件,点一次选中,再点击取消选中,依次类推。这个功能在IE8中没问题,但是在firefox中测试的时候,前两次都没有问题,可以正常显示选中和取消,但当再去选中的时候,复选框的属性checkbox值变为”checked”,没问题,但是复选框却不在显示选中状态,明明属性值改了,但是却不显示勾选,我以为是浏览器缓存的问题,但是删除缓存还是不行……..后来在网上看到了方法,说是jQuery版本的问题,jQuery1.6以上用attr会存在兼容性问题,得换成prop

查了下API prop属性是这样的:

prop(name|properties|key,value|fn)

概述
获取在匹配的元素集中的第一个元素的属性值。
随着一些内置属性的DOM元素或window对象,如果试图将删除该属性,浏览器可能会产生错误。jQuery第一次分配undefined值的属性,而忽略了浏览器生成的任何错误

jQuery API明确说明,1.6+的jQuery要用prop,尤其是checkBox的checked的属性的判断,于是乎把js代码里面的attr换成prop就行了

代码:

//1.6+的jQuery要用prop代替attr否则达不到效果!!!!        //全选/全不选复选框        $("#selectal1").click( function(){
if($(this).prop("checked")==true){ $("input:checkbox[id!='selectal1']").each(function() {
$(this).prop("checked",true); }); }else{ $("input:checkbox[id!='selectal1']").each(function() {
$(this).prop("checked",false); }); } }); //全选按钮 $("#allbtn").click(function(){
$("input:checkbox[id!='selectal1']").each(function() {
$(this).prop("checked",true); }); }); //全不选按钮 $("#notallbtn").click(function(){
$("input:checkbox[id!='selectal1']").each(function() {
$(this).prop("checked",false); }); }); //反选按钮 $("#reversebtn").click(function(){
$("input:checkbox[id!='selectal1']").each(function() {
$(this).prop("checked",!$(this).prop("checked")); }); });

希望对大家有所帮助^_^

转载于:https://www.cnblogs.com/ss0xt/p/6667183.html

你可能感兴趣的文章
C#基础
查看>>
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 15. 用户管理
查看>>
杭电3466————DP之01背包(对状态转移方程的更新理解)
查看>>
算法分析常用记号
查看>>
3.1.3自适应阈值化
查看>>
NABCD
查看>>
ZOJ 2850 Beautiful Meadow (简单题)
查看>>
Android开源框架ImageLoader的完美例子
查看>>
LeetCode - Best Time to Buy and Sell Stock
查看>>
java-Coculator
查看>>
499 单词计数 (Map Reduce版本)
查看>>
python笔记
查看>>
昨天用的流量有点多60M
查看>>
kafka中的消费组
查看>>
Golang的channel使用以及并发同步技巧
查看>>
【JDK源码分析】 String.join()方法解析
查看>>
【SICP练习】112 练习3.28
查看>>
python--注释
查看>>
前端资源链接 ...
查看>>
yum install ntp 报错:Error: Package: ntp-4.2.6p5-25.el7.centos.2.x86_64 (base)
查看>>