DOM操作 - 元素操作方式(上)

操作元素样式
style
●专门用来给元素添加 css 样式的
●在 JS 内操作元素样式style的情况分成三种
○设置元素的行内样式
○获取元素行内样式(只能获取到行内样式)
○获取元素非行内样式(可以获取行内样式也可以获取非行内样式)
■非行内样式有内嵌式和外链式

<body>
  <div></div>

  <script>
    var div = document.querySelector('div')
       div.style.width = "100px"
    div.style.height = "100px"
    div.style.backgroundColor = "pink"
    console.log(div)
    // <div style="width: 100px; height: 100px; background-color: pink;"></div>
  </script>
</body>


复制代码

●页面中的 div 就会变成一个宽高都是 100,背景颜色是粉色
操作元素类名
className
●专门用来操作元素的 类名的
●实际上就是操作元素的原生属性,只不过在js中class是一个关键字,所以我们操作原生属性改用className
获取
●语法:元素对象.calssName
●返回值:得到的就是元素的完整类名

<body>
  <div class="box"></div>
  <script>
    var div = document.querySelector('div')
       console.log(div.className) // box
  </script>
</body>


复制代码

设置
●语法:元素对象.className = '值'
●这样设置是全覆盖式的操作,也就是把之前的类名会全部覆盖掉

<body>
  <div class="box"></div>

  <script>
    var div = document.querySelector('div')
       div.className = 'test'
    console.log(div) // <div class="test"></div>
  </script>
</body>


复制代码

●在设置的时候,不管之前有没有类名,都会全部被设置的值覆盖
追加
●语法:元素.className += ' 值'
●注意: 值的位置要书写一个空格

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="seal">你好 世界</div>
    <script>
        var box = document.querySelector('div')
        box.className += ' container'
        console.log(box);//<div class="seal container">你好 世界</div>
    </script>
</body>

</html>


复制代码

classList
●每一个元素都有一个属性叫做 classList,是一个类似数组的集合, 里面记录了元素所有的类名
●classList操作类名有几种方式:添加,删除和切换
添加类名
●语法: 元素.classList.add('要添加的类名')
●作用: 给该元素添加一个类名, 但是重复的不会添加进去了

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="seal">你好 世界</div>
    <script>
        var box = document.querySelector('div')
        console.log(box.classList); //['seal', value: 'seal']
        box.classList.add('cls')
        console.log(box);//<div class="seal cls">你好 世界</div>
    </script>
</body>

</html>


复制代码

删除类名
●语法: 元素.classList.remove('要删除的类名')
●作用: 该该元素删除一个类名

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="seal hello">你好 世界</div>
    <script>
        var box = document.querySelector('div')
        box.classList.remove('hello')
        console.log(box); //<div class="seal">你好 世界</div>
    </script>
</body>

</html>


复制代码

切换类名
●语法: 元素.classList.toggle('要切换的类名')
●作用: 该元素切换一个类名
●切换: 有就删除, 没有就添加

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div class="seal hello">你好 世界</div>
    <script>
        var box = document.querySelector('div')
        box.classList.toggle('hello')
        box.classList.toggle('world')
        console.log(box); //<div class="seal world">你好 世界</div>
    </script>
</body>

</html>


复制代码

操作元素属性
●元素属性:书写在标签身上, 一个 key=value 的键值对, 叫做一条属性
●通过我们各种获取元素的方式获取到页面中的标签以后
●我们可以直接操作 DOM 元素的属性,就能直接把效果展示在页面上
属性的分类
●原生属性
○在 W3C 规范中提到的属性, 对标签有一定的特殊意义或者描述作用
■id, class, src, type, ...
●自定义属性
○对于标签没有特殊的作用或者描述任务, 只是用来在标签身上记录一些信息
●H5 自定义属性
○只是 H5 自定义属性会以 data- 开头, 直观的看出来是自定义属性
○设置的方式: data-属性名=属性值
操作元素属性
●以下的所有操作属性的方式和方法, 均不操作 类名(class) 和 样式(style)
●操作原生属性
○直接依靠属性名进行操作
■获取: 元素.属性名
●得到的就是该元素指定属性的值
■设置: 元素.属性名 = 属性值
●作用修改该属性的值
●操作自定义属性
○获取:
■语法: 元素.getAttribute(属性名)
■返回值: 元素中该属性对应的值
○设置:
■语法: 元素.setAttribute(属性名, 属性值)
■作用: 设置或者修改一条自定义属性
○删除:
■语法: 元素.removeAttribut(属性名)
■作用: 删除元素身上该自定义属性
●操作H5 自定义属性
○每一个元素身上自带一个属性, 叫做 dataset, 是一个类似于对象的数据结构
○里面记录的是该元素身上所有的 data- 开头的自定义属性
○对于所有 H5 自定义属性的操作依赖于这个 dataset
○获取: 元素.dataset.属性名
○设置: 元素.dataset.属性名 = 属性值
○删除: delete 元素.dataset.属性名

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <div id="container" class="box" hello="world" data-index="1" data-id="10">123</div>
  <!-- <img src="https://img2.baidu.com/it/u=2102736929,2417598652&fm=26&fmt=auto&gp=0.jpg" alt=""> -->

  <script>
  
    // 0. 获取元素
    var box = document.querySelector('div')
    var img = document.querySelector('img')

    // 1. 操作原生属性
    // 1-1. 原生属性获取
    console.log(box.id)
    console.log(img.src)
    // 1-2. 原生属性修改
    box.id = 'abcd'
    img.src = 'https://img0.baidu.com/it/u=1514002029,2035215441&fm=26&fmt=auto&gp=0.jpg'

    // 2. 自定义属性
    // 2-1. 自定义属性获取
    var res = box.getAttribute('hello')
    console.log(res)
    // 2-2. 自定义属性设置
    box.setAttribute('guoxiang', '你好')
    box.setAttribute('guoxiang', '世界')
    // 2-3. 自定义属性删除
    box.removeAttribute('hello')

    // 3. H5 自定义属性
    // 3-1. 获取
    console.log(box.dataset.index)
    // 3-2. 设置
    // 在标签上设置了一个 data-guoxiang="你好"
    box.dataset.guoxiang = '你好'
    box.dataset.guoxiang = '世界'
    // 3-3. 删除
    delete box.dataset.index

  </script>
</body>
</html>



复制代码

案例-密码可视

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>

  <input type="password"><button>眼睛</button>

  <script>
    /*
      案例 - 密码可视
        + 当点击这个 眼睛 按钮的时候
          => 判断 input 元素的 type 属性如果是 password 修改为 text
          => 判断 input 元素的 type 属性如果是 text 修改为 password
    */

    // 0. 获取元素
    var inp = document.querySelector('input')
    var btn = document.querySelector('button')

    // 1. 给 btn 绑定点击事件
    btn.onclick = function () {
      // 2. 拿到元素现在的 type 属性的值
      var current = inp.type

      // 3. 判断
      if (current === 'password') {
        // 设置为 text
        inp.type = 'text'
      } else {
        // 设置为 password
        inp.type = 'password'
      }
    }
  </script>
</body>
</html>



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/17068.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++每日一练:小艺照镜子(详解分治法)

文章目录 前言一、题目二、解题1.分析 总结 前言 大过节的&#xff0c;不想去看人后脑勺&#xff0c;就做点题来玩。挑了小艺照镜子&#xff0c;百分通过~ 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、题目 题目名称&#xff1a; 小艺照镜子 …

【Linux】生产者消费者模型

目录 一、生产者消费者模型 1、生产者消费者模型的概念 2、生产者、消费者之间的关系 3、生产者和消费者的特点 二、基于BlockingQueue的生产者消费者模型&#xff08;条件变量控制同步与互斥&#xff09; 1、一个生产线程和一个消费线程完成的计算任务 1.1BlockQueue.h…

Kubernetes服务搭建[配置-部署](Kubeadm)

文章目录 **[1 — 7] ** [ 配置K8S主从集群前置准备操作 ]一&#xff1a;主节点操作 查看主机域名->编辑域名1.1 编辑HOST 从节点也做相应操作1.2 从节点操作 查看从节点102域名->编辑域名1.3 从节点操作 查看从节点103域名->编辑域名 二&#xff1a;安装自动填充&…

进程地址空间与页表方面知识点(缺页中断及写时拷贝部分原理)

谢谢阅读&#xff0c;如有错误请大佬留言&#xff01;&#xff01; 目录 谢谢阅读&#xff0c;如有错误请大佬留言&#xff01;&#xff01; 抛出总结 开始介绍 发现问题 进程地址空间&#xff08;虚拟地址&#xff09; 页表 物理内存与进程地址空间映射 缺页中断基本…

Spring--AOP详细介绍--和详细代码演示证明理解

目录 Spring--AOP详细介绍 基本介绍 代码演示—入门 需求说明 定义一个接口类Vehicle 定义一个实现接口类的Car类 定义一个实现接口类的Ship类 创建测试类Test.java 来思考一下&#xff0c; 解决方案-动态代理方式-2 修改 Car类 修改 Ship类 创建VehicleProxyProvid…

Stable Diffusion使用方法

SD的本地安装教程有很多我就不重复了&#xff0c;这里主要是记录我在使用SD Webui的过程中遇到的问题&#xff0c;总结的一些提升出图效率&#xff0c;出好图概率的经验。 先搞几张看看效果 二次元妹妹 高达 &#xff1f; Ok&#xff0c;以上只是一小部分成品 &#xff0c;属…

PyQt5桌面应用开发(6):文件对话框

本文目录 PyQt5桌面应用系列介绍QFileDialog的静态接口QFileDialog的对象接口 示例结论后记 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2&#xff09;&#xff1a;事件循环 PyQt5桌面应用开发&#xff…

MRI k空间概念整理

以下内容为MRI期末复习笔记&#xff0c;仅供复习参考使用。 K空间概念 K空间为包含MR数据的阵列&#xff0c;也可定义为原始数据阵列相位编码轴和频率编码轴的交叉点 MR扫描得到的数据为谱空间数据&#xff0c;谱空间数据与空间数据位置无直接对应关系 k空间每一数据点或数据…

不能使用chatGPT?这3个平替甚至比chatGPT更强

不能使用chatGPT&#xff1f;这3个平替甚至比chatGPT更强 chatGPT&#xff0c;一款由OpenAI开发的新型AI聊天机器人&#xff0c;正在势如破竹地改变着许多人的工作和生活方式。作为一款基于大语言模型的聊天机器人&#xff0c;chatGPT能够理解自然语言并进行人机对话。与传统的…

用于scATAC-seq有监督分类的Cellcano

细胞类型识别是单细胞数据分析的基本步骤。由于高质量参考数据集的可用性&#xff0c;有监督细胞分类方法在scRNA-seq数据中很受欢迎。染色质可及性分析&#xff08;scATAC-seq&#xff09;的最新技术进步为理解表观遗传异质性带来了新的见解。随着scATAC-seq数据集的不断积累&…

html5地理位置信息介绍, 百度地图使用

文章目录 1. HTML5中地理信息API1.1 Geolocation 接口 2. 在vue中使用百度地图3. 在react中使用百度地图 1. HTML5中地理信息API HTML5 的地理位置 API 可以让你获取用户的地理位置信息&#xff0c;并将其用于许多不同的应用场景&#xff0c;例如&#xff1a; 在地图上显示用…

钴基双金属氧化物储能材料的高效制备和电化学应用

一、引言 钴金属氧化物作为一类典型的储能材料&#xff0c;既可以用于锂离子电池负极材料&#xff0c;又可以用于超级电容器电极材料&#xff0c;因而备受关注 。在作为锂离子电池负极材料时&#xff0c;具有较高的理论比容量&#xff0c;但充放电体积变化较大、材料导电性较差…

爬虫为什么需要ip

爬虫需要使用爬虫ip主要是为了解决以下问题&#xff1a; 1、反爬虫机制&#xff1a;许多网站会设置反爬虫机制来防止爬虫程序的访问&#xff0c;例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制&#xff0c;使得爬虫程序更难被检测到。 2、访问限制&a…

浅拷贝和深拷贝

浅拷贝&#xff1a; 定义&#xff1a;浅拷贝&#xff08;Shallow Copy&#xff09;是一种简单的对象复制方式&#xff0c;将一个对象的数据成员直接复制给另一个对象&#xff08;通常是通过默认的复制构造函数或赋值运算符实现&#xff09;&#xff0c;这些数据成员可以是基本…

JavaScript:字符串

文章目录 字符串344. 反转字符串reverse() 方法&#xff08;打基础的时候&#xff0c;不要太迷恋库函数&#xff09;代码及思路 541. 反转字符串 IIJavaScript String split() 方法JavaScript Array join() 方法代码分析见注释 剑指 Offer 05. 替换空格思路注意&#xff1a;上面…

网络基础学习:什么是网络与网络发展史

什么是网络与网络发展史 什么是网络&#xff1f;什么是网络发展史&#xff1f;分组交换技术TCP/IP技术Web技术ARPANET&#xff08;1969年&#xff09;Internet&#xff08;1983年&#xff09;万维网&#xff08;1990年&#xff09;移动互联网&#xff08;2007年&#xff09;物联…

KDGK-F断路器机械特性测试仪

一、产品概述 KDGK-F 断路器机械特性测试仪可用于各电压等级的真空、六氟化硫、少油、多油等电力系统高压开关的机械特性参数测试与测量。测量数据稳定&#xff0c;抗干扰性强&#xff0c;可在500KV等级及以下电站做实验&#xff0c;接线方便&#xff0c;操作简单&#xff0c;是…

第14章 项目采购管理

文章目录 采购管理包括如下几个过程14.2 编制采购计划 462编制采购计划的输出1&#xff09;采购管理计划2&#xff09;采购工作说明书3&#xff09;采购文件 14.2.3 工作说明书&#xff08;SOW&#xff09; 14.3 实施采购 47414.3.2 实施采购的方法和技术 476&#xff08;1&…

No.054<软考>《(高项)备考大全》【冲刺8】《软考之 119个工具 (6)》

《软考之 119个工具 &#xff08;6&#xff09;》 99.应急应对策略:100.风险在评估:101.风险审计:102.偏差和趋势分析:103.技术绩效测量:104.自制或外购分析:105.市场调研:106.投标人会议:107.建议书评价技术:108.独立核算:109.广告:110.采购谈判:111.合同变更控制系统:112.采购…

ArduPilot之GPS Glitch问题M8N模块配置

ArduPilot之GPS Glitch问题&M8N模块配置 1. 源由2. 现象3. 视频分析3.1 配置&#xff08;不理想&#xff09;3.2 配置优化3.3 优化配置短时间3D LockGlitch3.4 优化配置长时间3D DGPS Lock3.5 使用尽量多的卫星系统3.5.1 配置一3.5.2 配置二 3.6 同一时间段&#xff08;M8N…
最新文章