【JavaScript入门-26】DOM中内置的属性以及自定义属性

举报
搞前端的半夏 发表于 2022/05/30 23:00:23 2022/05/30
【摘要】 在之前的文章中,我们用到了innerText和textContent,classList。这些都被称为属性。属性主要用来记录元素的信息。例如元素的class src alt在DOM中都有对应的属性!在上文中我们有一个图片 <img width="200" height="200" class="img-style" src="" />现在我想使用js给它添加一个alt属性,可以这么写:...

在之前的文章中,我们用到了innerText和textContent,classList。这些都被称为属性。属性主要用来记录元素的信息。例如元素的class src alt在DOM中都有对应的属性!在上文中我们有一个图片

    <img width="200" height="200" class="img-style" src="" />

现在我想使用js给它添加一个alt属性,可以这么写:

      img.alt="这是图片的alt"

image-20220530223653143

我们也可以这样设置图片的宽度,添加下面的代码。

img.width=1000

同样的我们可以通过img.width来获取图片的宽度。这是因为大部分的属性都是gettersetter

img.width

当然了还有一些属性是能进行读取!例如naturalWidth

console.log("图片的原始宽度",img.naturalWidth)

image-20220530224141355

这个属性是用来记录图片的原始尺寸的!且必须等待图片全部现在完成才能获取到正确的值。

对于具有getter和setter的属性,我们可以直接进行赋值和读取,但是还有属性是无法直接操作的。我们可以使用getAttribue setAttribute来进行操作。

例如上面的alt,我们还可以使用

      img.setAttribute('alt','这是使用setAttribute的alt')

image-20220530224558477

data-*

上面我们主要介绍的自带的一些属性。当然我们还可以使用data-*来自定义属性!

我们来演示一个例子:

    <img data-name="卡通头像"width="200" height="200" class="img-style" src="" />

查看元素,data-name可以成功添加!

image-20220530225132309

现在我想获取data-name的值,首先需要获取到元素!

 const img = document.querySelector(".img-style");

在img对象上,有一个dataset属性,它保存着所有data-*的是。

      console.log("data-*",img.dataset);

image-20220530225657002

了解了,data-*的用法,有的人会问了,自定义属性的场景是什么?这里我们说一个最常见的场景-“图片懒加载”

页面中的img元素,如果没有src属性,浏览器就不会发出请求去下载图片,只有通过javascript设置了图片路径,浏览器才会发送请求。所以懒加载基本的原理就是用dataset自定义属性取代src存储图片的路径,然后在检测到图片进入到可视区域的时候,再将其换为src

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。