斑授匡炽乃分效下龟钝垂弘兔
页面结构
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>元素属性与自定义属性操作</title> </head> <body> <img src="../images/zly.jpg" width="200" alt="美女" title="明星" id="pic" data-nation="中国" /> </body> </html> <script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> </script>
执行:
预备知识: 读取器,设置器
1. 有一些函数,可以根据参数的数量不同,执行不同的功能,返回不同的值,类似于功能重载
2. 传入一个参数,执行读取操作getter,返回该参数的当前值,叫:读取器/获取器
3. 传入二个参数,执行赋值操作setter,修改当前参数的值,叫:设置器/修改器
4. 这种根据参数个数决定执行操作类型的方法,在jQuery中非常多,大家要留意*/
1. attr():元素属性的获取与设置
必须传参
<script type="text/javascript"> var res=$('img').attr() //在控制台查看运行结果 console.log(res) </script>
执行,打开开发者工具,提示错误,因为没有传递参数
查看图片的url地址
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res=$('img').attr("src") //在控制台查看运行结果 console.log(res) </script>
执行:
传入第二个参数变为设置器,将赵丽颖的图片url地址替换为高圆圆的url地址:
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res=$('img').attr("src",'../images/gyy.jpg') //在控制台查看运行结果 console.log(res) </script>
执行,图片的url此时变为高圆圆:
双参数为获取,第一个是属性名,第二个是要设置的新值
通过attr()设置样式
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').attr('src','../images/gyy.jpg') $('#pic').attr('style','border-radius:50%;box-shadow: 2px 2px 2px #888;') </script>
执行:
由此可见,attr()是典型的集读取器与设置器二合一的方法
attr()可以获取到元素的自定义属性
html5中,可以通过data-前缀给标签添加用户自定义属性
查看赵丽颖的data-nation属性,data-nation属性为用户自定义属性,可以在h5中使用 必须以data开始
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res=$('#pic').attr('data-nation') console.log(res) </script>
执行:
attr()的属性值,还支持回调函数
将赵丽颖的图片变为150px
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').attr('width',function(){ return 100+50 }) var res=$('#pic').attr('width') console.log(res) </script>
执行:
2. removeAttr():删除元素的属性
先将图片设置style样式
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').attr('style','border-radius: 50%;box-shadow: 2px 2px 2px #888;') </script>
执行:
删除图片的内联样式属性style
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').attr('style','border-radius: 50%;box-shadow: 2px 2px 2px #888;') $('#pic').removeAttr('style') </script>
执行:
可以删除多个属性,多个属性之间用空格分开,返回当前元素的状态
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').attr('style','border-radius: 50%;box-shadow: 2px 2px 2px #888;') $('#pic').removeAttr('style alt title data-nation') console.log($("#pic")) </script>
执行:
谓菠霜狼裤嘎廖猩辫翰钝侵良