解决jquery中全选点击第二次不生效的问题与分析

今天在开发一个前端选项全选和全不选的功能,发现点击第一次生效,但是第二次就没有效果了,后面把attr()方法改成就prop()就可以了!

一,jquery attr()方法有4个表达式
 

1. attr(属性名)       

获取属性的值(取得第一个匹配元素的属性值。通过这个方法可以方便地从第一个匹配元素中获取一个属性的值。如果元素没有相应属性,则返回undefined)

 

2. attr(属性名,属性值)  

设置属性的值(为所有匹配的元素设置一个属性值。)

 

3. attr(属性名,函数值)    

设置属性的函数值(为所有匹配的元素设置一个计算的属性值。不提供值,而是提供一个个数,由这个函数计算的值作为属性值。)

 

4.attr(属性)   

给指定元素设置多个属性值,即:{属性名一:“属性值一”,属性名二:“属性值二”,...... ...。(这是一种在所有匹配元素中批量设置很多属性的最佳方式。注意,如果你要设置对象的类属性,你必须使用'className'作为属性名。或者你可以直接使用'class'或者'id'。)

 

 

二是,jQuery中ATTR方法代码

 

JScript代码复制













 

 

三,jquery的中.prop()

 

1,.prop(propertyName)

 

获取匹配集合中第一个元素的属性的值

 

2,

 

.prop(propertyName,value)

.prop(地图)

.prop(propertyName,function(index,oldPropertyValue))

 

给匹配元素集合设定一个或多个属性

 

四是,jQuery中的道具方法代码

 

JScript代码复制







 

ATTR方法里面,最关键的两行代码,elem.setAttribute(名称,值+“”)和RET = elem.getAttribute(名称),很明显的看出来,使用的DOM的API的setAttribute和的getAttribute方法操作的属性元素节点。


丙方法里面,最关键的两行代码,返回(ELEM [名称] =值)和返回ELEM [名称],你可以理解成这样的document.getElementById(EL)[名称] =值,这是转化成JS对象的一个属性。

 

五。特性(属性)和属性(属性)有何区别?

 

DOM对象大部分的属性都有对应的属性,名字也基本一样(也有例外,如“类”这个属性对应的属性名字为“类名”),这些属性也和其对应的属性保持一样的状态或值。但一些布尔类型的属性(如checked,selected,disabled等)有些特殊,其属性只是保留初始值(默认值),属性才是当前最新的状态或值。如一个默认勾选的复选框,当你在页面去除勾选的时候,检查这个属性已由真变为假,而检查这个属性仍然保持“选中”这个初始值。由此可见属性和属性完全不是同一个东西,但“通用”的ATTR方法似乎在某种程度上模糊了这个区别。

 

六。ATTR()和道具()有何区别?

 

使用道具的时候,返回值是标准属性,真/假,比如$( '#复选框')。支撑( '禁用'),不会返回“已禁用”或者“”,只会是真/假。当然赋值的时候也是如此。使用ATTR,如禁用= '禁用' 时,为真,没有选中时,则为未定义。如此,我们便统一了所有操作,无论是从语法上还是语义上。

.prop()方法应该被用来处理boolean attributes / properties以及在html(比如:window.location)中不存在的属性。其他所有的属性可以而且应该继续使用.attr()方法来进行操作。

 

七,什么时候使用ATTR(),什么时候使用道具()?


1,添加属性名称该属性就会生效应该使用的道具();
2,是有真,假两个属性使用丙();
3,其他则使用ATTR();

4,简单的说,那些只添加属性名不添加属性值就会生效,或者是,只存在真/假的属性就需要使用丙()方法,比如selectedIndex,  tagName,  nodeName,  nodeType,  ownerDocument,  defaultChecked,和  defaultSelected

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值