【JavaScript入门-25】操作DOM中的class

举报
搞前端的半夏 发表于 2022/05/30 21:50:27 2022/05/30
【摘要】 在JavaScript中,我们可以通过修改元素的class和style属性来改变元素的样式!当我们选择一个classList属性,我们可以通过对classList进行添加和删除!请注意,我们无法直接对classList进行赋值和删除。他是以一个只读属性,我们可以使用它提供的方法来进行修改!我们有下面的一个img元素<img width="200" height="250" class="im...

在JavaScript中,我们可以通过修改元素的class和style属性来改变元素的样式!当我们选择一个classList属性,我们可以通过对classList进行添加和删除!请注意,我们无法直接对classList进行赋值和删除。他是以一个只读属性,我们可以使用它提供的方法来进行修改!

我们有下面的一个img元素

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

获取到img元素并输出classList

 const img = document.querySelector(".img-style");
      console.log("img:", img.classList);

可以看到输出了只有一个元素的数组。DOMTokenList表示class属性的内容。如果元素不存在class属性,则返回空。

image-20220530211459435

如果你展开这个属性,你会发现在classList上挂载着很多方法!例如我们经常用到的add/remove/contains/foreach

image-20220530211635072

add()

使用add方法添加一个class

 img.classList.add('add-class')

刷新页面,并检查图像元素。你会看到图像现在有一个add-class。

image-20220530211903966

我们连续调用两次add

 img.classList.add('add-class')
  img.classList.add('add-class')

刷新页面,并检查图像,你会发现,即使我们调用了两次,也只会添加一次。

也就是说add添加新的类名,如已经存在,取消添加

remove

使用remove来删除存在的img-style属性。

img.classList.remove('img-style')

刷新页面,并检查图像元素。你会看到图像现在已经没有img-style。

image-20220530212236497

toggle

我们现在有一个可以使得图片变圆的class。

<style>
  .round {
    border-radius: 50%;
  }
</style>

我们使用add()来给img添加这个class

刷新页面,图像已经变圆

image-20220530212819465

现在我们将add替换为toggle。

刷新页面,发现图像仍然可以正常变圆。

当我们连续两次调用toggle方法,你会发现图片已经无法变圆。toggle的作用是:如果该类不存在,将添加该类,如果存在则将其删除。

img.classList.toggle('round')
img.classList.toggle('round')

这个方法,在我们的日常的开发中经常会被用来实现导航的关闭和打开。

contains

我们可以用下面的代码来检查属性是否存在。

console.log(img.classList.contains('img-style'))

他的返回值是布尔类型!

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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