前面的话
每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息。操作特性的DOM方法主要有3个:getAttribute()方法、setAttribute()方法和removeAttribute()方法,而在jQuery中用一个attr()与removeAttr()就可以全部搞定了,包括兼容问题。本文将介绍jQuery中的特性操作
获取特性
jQuery中用attr()方法来获取和设置特性,attr是attribute(特性)的缩写,在jQuery DOM操作中会经常用到attr()方法
attr(attributeName)
attr(传入特性名):获取特性的值,相当于DOM中的getAttribute()
<div id="test"></div> <script src="/UploadFiles/2021-04-02/jquery.min.js">[注意]attr()方法只获取第一个匹配元素的属性值。要获取每个单独的元素的属性值,我们依靠jQuery的.each()或者.map()方法循环
<div class="test" id="ele1">元素一</div> <div class="test" id="ele2">元素二</div> <script src="/UploadFiles/2021-04-02/jquery.min.js">prop()
属性(property)和特性(attribute)是不同的。属性是DOM节点的属性,而特性是HTML标签的特性
[注意]关于属性和特性的区别的详细信息移步至此
<div id="test" data="abc"></div> <script src="/UploadFiles/2021-04-02/jquery.min.js">由上面代码可知,jQuery并没有解决低版本IE浏览器属性和特性混淆的问题
设置特性
设置特性虽然依然使用attr()方法,但却有3种方式
【1】attr(attributeName,value)
attr(特性名, 特性值):设置特性的值,相当于DOM中的setAttribute()
<div id="test"></div> <script src="/UploadFiles/2021-04-02/jquery.min.js">jQuery禁止改变一个<input>或<button>元素的type特性,会静默失败。因为IE8-不会允许改变<input>或者<button>元素的type特性,静默失败
<input id="test" type="text"> <script src="/UploadFiles/2021-04-02/jquery.min.js">【2】attr(attributes)
attr(attributes):给指定元素设置多个特性值,即{特性名一: “特性值一”,特性名二:“特性值二”,…}
当设置多个特性,包裹特性名的引号是可选的
<div id="test"></div> <script src="/UploadFiles/2021-04-02/jquery.min.js">[注意]设置样式名“class”特性时,必须使用引号。否则IE8-浏览器下会报错
<div id="test"></div> <script src="/UploadFiles/2021-04-02/jquery.min.js">【3】attr(attributeName,function(index,attr))
attr(特性名,函数值):通过使用一个函数来设置属性,可以根据该元素上的其它属性值返回最终所需的属性值
函数中的index表示元素在匹配集合中的索引位置,html表示元素原来的HTML内容,this指向当前的元素,函数返回用来设置的值
<div class="test" id="ele1" title="元素">元素一</div> <div class="test" id="ele2" title="元素" >元素二</div> <script src="/UploadFiles/2021-04-02/jquery.min.js">如果用javascript实现类似的效果,实际上就是字符串连接
[注意]IE8-浏览器不支持getElementsByClassName()方法
<div class="test" id="ele1" title="元素">元素一</div> <div class="test" id="ele2" title="元素" >元素二</div> <script> var classTest = document.getElementsByClassName('test'); for(var i = 0; i < classTest.length; i++){ classTest[i].title = classTest[i].title + classTest[i].className + i; } console.log(ele1.title);//元素test0 console.log(ele2.title);//元素test1 </script>删除特性
removeAttr(attributeName)
removeAttr()方法使用原生的removeAttribute()函数,但是它的优点是可以直接在一个jQuery 对象上调用该方法,并且它解决了跨浏览器的特性名不同的问题
要移除的属性名从1.7版本开始,可以是一个空格分隔的属性列表
<div id="ele1" title="元素" data="value">元素</div> <script src="/UploadFiles/2021-04-02/jquery.min.js">通过此文,希望大家能对jQuery 特性操作的知识掌握,谢谢大家对本站的支持!
DDR爱好者之家 Design By 杰米广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!DDR爱好者之家 Design By 杰米暂无评论...P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]