部培屉碴闹枷取男灌兴咕虾羞
data():读取元素中属性名以data-开始的自定义数据,可以省略data-前缀
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>3.在元素中存储数据:data()</title> </head> <body> <img src="../images/boy.jpeg" width="200" alt="倒霉熊" title="卡通人物" id="pic" data-job="动画片角色" /> </body> </html> <script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res = $('#pic').data('job') console.log(res) </script>
执行:
注意不要加前缀,加前缀无法拿到值
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res = $('#pic').data('data-job') console.log(res) </script>
执行:
使用attr()需要完整的前缀
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res = $('#pic').attr('data-job') console.log(res) </script>
执行:
如果是动态设置的自定义属性,省略前缀是获取不到的
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('data-course','php开发') var res = $('#pic').data('course') console.log(res) </script>
执行:
要获取动态设置的属性必须使用完整的名称
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('data-course','php开发') var res = $('#pic').data('data-course') console.log(res) </script>
执行:
data()能获取元素上的原生属性吗?无法读取
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> var res = $('#pic').data('title') console.log(res) </script>
执行:
但是支持动态设置title属性,仅限于脚本中使用,原始值并未发生变化
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('title','hello') var res = $('#pic').data('title') console.log(res) </script>
执行:
同样,data()也有一个对应的removeData()用来删除自定义或由它创建的属性
仅删除临时创建的,原始值不受影响
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('title','hello') var res = $('#pic').removeData('title') console.log(res) </script>
执行,可以看到删除的是设置的hello,原始的卡通人物并没有被删除
删除临时创建的data-course
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('data-course','php开发') var res = $('#pic').removeData('data-course') //仅删除临时创建的 var res = $('#pic').data('data-course') //仅删除临时创建的 console.log(res) </script>
执行:
原始标签自带的自定义属性中删除不了的
<script type="text/javascript" src="../jquery/jquery-3.3.1.js"></script> <script type="text/javascript"> $('#pic').data('data-course','php开发') var res = $('#pic').removeData('data-job') //仅删除临时创建的 var res = $('#pic').data('job') //仅删除临时创建的 console.log(res) </script>
执行:
建泡晴桅挪孙庐伯晤钩镐翟脐