属性和属性结点
什么是属性?
对象身上保存的变量是属性
如何操作属性?
赋值:对象.属性名称=值
取值:对象.属性
赋值:对象[“属性”]=值
取值:对象[“属性”]
什么是属性节点?
在HTML标签中添加的属性叫属性节点
如何操作属性节点?
DOM元素.setAtrribute("属性名称“,”属性值“)
DOM元素.getAttribute(“属性名称”)
注意:任何对象都有属性,只有DOM对象才有属性节点。
操作属性节点方法
(1)attr(name|pro|key,val,fn)
作用:获取或设置属性节点的值。
可以传递一个参数,也可以传递两个参数
若传递一个参数,则获取属性节点的值
若传递两个参数,则设置属性节点的值
传递一个参数:
$('span').attr('class') //寻找第一个span的class值
注意:
无论找到多少个元素,都只会返回第一个元素指定的属性节点的值。
传递两个参数:
$('span').attr('class','box') //设置找到的所有span元素并将其class属性值设置为box。
注意:
若span有多个,则将所有的span设置其class属性为box;
若要设置的属性不存在,则系统会自动新增该属性及其值。
(2)removeAttr(name)删除属性节点
$('span').removeAttr('class')//删除所有span的class属性
$('span').removeAttr('class id')//删除所有span的class属性和id属性
注意:
删除属性节点时,会删除所有匹配的元素的属性;
当需要删除多个属性时,属性之间用空格隔开。
操作属性方法
prop方法
$("span").eq(0).prop("demo","123") //设置$("span")所获取到的伪数组的第一个span的属性demo的值为123
$('span').eq(1).prop('demo')//设置$('span')所获取到的伪数组的第2个span的属性demo
注意:接收一个或者两个参数,一个参数为查找属性,两个参数为设置属性。可以同时设置多个元素的属性值。但只能获取第一个匹配的元素属性值。
removeProp方法
$('span').removeProp('demo')//删除所有匹配的span元素的属性demo
注意点
prop方法不仅能操作属性,也可以操作属性节点。
官方推荐在操作属性节点是,具有true和false两个属性的属性节点,如checked、selected、disabled时,使用prop,因为prop能正确返回true或者false,而attr不能返回true或者false,其他情况使用attr()。