checkbox属性checked="checked"已有,但却不显示打勾的解决办法

checkbox属性checked="checked"已有,但却不显示打勾的解决办法

主要原因是:jquery版本问题。

1、attr():

获取匹配的元素集合中的第一个元素的属性的值 或 设置每一个匹配元素的一个或多个属性。

 在jQuery 1.6中,当属性没有被设置时候,.attr()方法将返回undefined。若要检索和更改DOM属性,比如元素的checked, selected, 或 disabled状态,请使用.prop()方法。

2、removeAttr(): 

从每一个匹配的元素中删除一个属性

1.6以下版本在IE6使用JQuery的removeAttr方法删除disabled是无效的。解决的方法就是使用$("XX").prop("disabled",false);
1.7版本在IE6下已支持删除disabled。

3、prop():

获取匹配的元素集中第一个元素的属性(property)值或设置每一个匹配元素的一个或多个属性。

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

4、举例说明:

HTML:

复制代码
 1 <table class="table table-striped table-hover auth-table" id="auth-table">
 2 <tbody>
 3 <tr>
 4 <td>
 5 <input type="checkbox" name="user">
 6 <img src="../../asset/img/userHead.png" class="user-head">
 7 <span>艾祖青1</span>
 8 </td>
 9 <td>
10 <span class="user-email">zuqing.ai@changhong.com</span>
11 </td>
12 </tr>
13 <tr>
14 <td>
15 <input type="checkbox" name="user">
16 <img src="../../asset/img/userHead.png" class="user-head">
17 <span>艾祖青1</span>
18 </td>
19 <td>
20 <span class="user-email">zuqing.ai@changhong.com</span>
21 </td>
22 </tr>
23 </tbody>
24 </table>
复制代码

 

js:

 

复制代码
1        //人员的全选和反选;
2             function wholeChecked(){
3                 $("table#auth-table input[type='checkbox']").prop("checked","checked");
4             }
5             function wholeCheckedCancel() {
6                 $("table#auth-table input[type='checkbox']").removeAttr("checked");
7             }
复制代码

 

以上js代码中的设置多选框的checked属性,在jquery1.6及以下版本时,设置用attr();但在比较高版本下,就只有用prop()来进行设置,如果按attr来设置,会出现

在第一次点击全选按钮,所有checkbox被选中之后,取消全选,又全选时,就会看到checked属性在改变,但是复选框中的钩不显示,因为在低版本中,若元素本身没有设置相应的属性,.attr()会返回undfined。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值