JQuery普通属性操作

attr:获取匹配元素集中第一个元素指定属性的值。JQuery1.6起,如果属性未设置则返回undefined。JQuery1.6之前,使用attr检索attribute时会将property也考虑进去,从而导致一些不一致的行为。JQuery1.6起,提供了显示检索property的方法prop,而attr只检索attribute。比如selectedIndex、tagName、nodeName、nodeType、ownerDocument、defaultChecked和defaultSelected在JQuery1.6之前都是通过attr来获取和设置的。attr除了获取属性值还可以设置属性值,有三种方式为属性设置值。第一种是传入属性名和属性值。属性值可以是字符串,数字或null。如果传入的是null则会将会移除属性。第二种是传入一个包含属性名-值的对象,通过这种方式可以一次设置多个属性的值,使用此方式时属性名外的引号可以省略,但是class属性时,必须使用引号。第三种是JQuery1.1起,可以传入属性名和一个返回属性值的函数(函数接受两个参数,第一个是当前元素的索引,索引从0开始,第二个是属性原本的值),返回的属性值为字符串或数字,如果返回undefined则不会改变属性的值。

prop:JQuery1.6起,获取匹配元素集中第一个元素指定属性的值。如果未设置属性值或元素集为空则返回undefined。在IE9以前,使用prop将DOM元素属性设置为除简单原始值(字符串、数字或布尔类型)之外的任何类型值,如果在DOM元素从文档中移除之前不将属性移除,可能导致内存泄漏。prop除了获取属性值还可以设置属性值,有三种方式为属性设置值。第一种是传入属性名和属性值。第二种是传入一个包含属性名-值的对象,通过这种方式可以一次设置多个属性的值。第三种是传入属性名和一个返回属性值的函数(函数接受两个参数,第一个是当前元素的索引,索引从0开始,第二个是属性原本的值),返回新的属性值。

removeAttr:从匹配元素集中的每个元素中删除指定的属性。从JQuery1.7开始此方法还可以接受一个空格分隔的属性列表,可以一次删除多个属性。removeattr方法使用JavaScript的removeAttribute函数,但是它的优点是能够直接在jQuery对象上调用,并且可以跨浏览器使用不同的属性命名。在Internet Explorer 8、9和11中,使用.removeAttr()删除内联onclick事件处理程序无法达到预期的效果,需要使用prop替代,即使用prop方法将onclick设置为null。

removeProp:从匹配元素集中删除指定属性。removeProp删除由prop方法设置的属性。如果试图删除DOM元素或者window对象内置的属性,浏览器可能会产生错误。JQuery首先将undefined的值赋值给属性,并忽略浏览器生成的任何错误。通常只需要删除对象的自定义属性,而不需要删除内置属性。不要使用此方法删除原生属性如checked、disabled或selected。一旦删除,会完全删除属性,并且无法将其再次添加到元素中。可以通过prop方法将其设置为false来达到目的。

val:获取匹配元素集中第一个元素的当前值。val主要用于获取表单元素的值,如input、select和textarea。如果元素集为空则返回undefined。如果第一个元素是多选的,则返回一个包含所有选中项值的数组。如果没有选中项则返回null,JQuery3.0之后返回空数组。目前使用val方法获取textarea元素值会从浏览器报告的值中去掉回车符,但是,当这个值通过XHR发送到服务器时,回车将被保留。val还可以接受文本字符串、数字或一个字符串数组对应于每个匹配元素中设置为selected/checked的元素值。JQuery1.4起,val还可以通过接受一个函数(接受两个参数,一个是当前元素在集合中的索引,索引从0开始,第二个参数是元素原本的值,函数返回一个字符串。)来进行元素值的设置。val方法接受数组对于设置checkbox、radio和select的option时非常有用,input和option会将与数组中匹配的元素设置为checked/selected,不匹配的设置为unchecked/unselected。使用val方法设置属性值不会触发change事件,如果想要触发change事件,需要在设置完值后调用.trigger("change")。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值