获取DOM元素和类型判断

news2024/11/15 11:18:35

一、获取dom元素

<div id="one" class="one">我是第一个div</div>
<div>我是第二个div</div>
<div name="username">我是第三个div</div>
<input type="text" name="username">

  1.querySelector('选择器');//匹配到第一个css选择的元素

console.log(document.querySelector('div'));
console.log(document.querySelector('#one'));
console.log(document.querySelector('.one'));

  2.querySelectorAll('div');//获取一个类数组对象

console.log(document.querySelectorAll('div'));

  3.getElementById();通过id选择器获取

console.log(document.getElementById('one'),'获取id为one的元素');

  4.getElementsByClassName()[index];通过类名获取 类数组对象 

console.log(document.getElementsByClassName('one'));//类数组对象

  5.getElementsByTagName()[index];通过标签名获取元素

console.log(document.getElementsByTagName('div'),'通过标签名获取元素');

  6.getElementsByName()[index];通过name属性获取元素

console.log(document.getElementsByName('username'));

二、获取元素内部内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="parent">  我是  块级元素  
        <div>  我是块级元素  </div>
    </div>
    <script>
        /**
         * 获取元素内容方式以及区别? *************************************
         * 1.textContent  保留代码格式  只能获取文本内容
         * 2.innerHTML  保留代码格式   可以识别代码片段   v-html=''
         * 3.innerText  去除前后空格  中间多个空格会被解析为一个空白
         */
        var parent = document.getElementById('parent');
        console.log(parent.textContent);
        console.log(parent.innerHTML);
        console.log(parent.innerText);
        // 向文档写入标签或者文本
        document.write('<h1>一级标题</h1>')
    </script>
</body>
</html>

  1.textContent 只能获取元素或者后代元素的文本 保留代码格式 


  2.innerHTML 保留代码格式 识别代码片段 


  3.innerText 获取元素以及后代元素文本内容 去除前后空格


三、获取元素属性集合

  attributes  div id title class style
  one.attributes
  style 修改标签样式属性 
  innerWidth 获取元素内部宽
  innerHeight 获取元素内部高 
  classList 获取元素类列表 class ='one two'
  className 获取元素类名
      方法:
            获取属性 
            getAttribute('属性名') 获取元素属性
            设置属性
            setAttribute('属性名','属性值');设置元素属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="one" class="first one">块级元素</div>
    <script>
        var one = document.getElementById('one');
        // 访问元素属性   返回元素属性组成的集合(类数组对象)
        console.log(one.attributes);
        // 返回属性类名集合  类数组对象
        console.log(one.classList);
        // 修改元素类名
        one.className = 'new';
        // 返回元素类名
        console.log(one.className);
        console.log(one.clientHeight,'获取元素内部高度');
        console.log(one.clientWidth,'获取元素内部宽度');
        // 修改元素的内部内容  innerHTML 识别代码片段  解析字符串中的标签
        one.innerHTML = '<h1>标题标签</h1>'
        /**
         * 获取属性   getAttribute('属性名')
        */
       console.log(one.getAttribute('id'));
       /**
        * 给元素设置属性   setAttribute('属性名','属性值')
       */
      one.setAttribute('title','我是div中的title');
      // 设置自定义属性
      one.setAttribute('flag','我是自定义属性')
      // 给元素或者标签设置css样式
      one.style.width = '100px';
      one.style.height = '100px';
      one.style.backgroundColor = 'pink';
      one.style.fontSize = '20px';
    </script>
</body>
</html>

四、Text类型

  appendData() 追加文本内容
  deleteData() 删除文本内容
  createTextNode() 创建文本节点
  insertData() 插入文本内容
  replaceData() 替换文本内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>
        <!-- 我是注释节点 -->
    </div>
    <script>
        // 创建文本
        var TextNode = document.createTextNode('hello world');
        var div = document.querySelector('div')
        // 添加文本
        TextNode.appendData('hi');
        // 插入文本  参数:beginIndex  '插入的字符'
        TextNode.insertData(0,'dom');
        // 替换文本  参数:beginIndex  count '替换字符'
        TextNode.replaceData(0,5,'我被替换了');
        // 删除文本  参数:beginIndex  count
        TextNode.deleteData(0,5);
        div.appendChild(TextNode);
        console.log(TextNode.nodeType);
        console.log(div.childNodes[1].nodeType);


        // 判断节点类型  nodeType   document 9   注释节点 8   Elemen节点 1   属性节点 2   文本节点 3
    </script>
</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【完美世界】叶倾仙强势登场,孔雀神主VS护道人,石昊重逢清漪

Hello,小伙伴们&#xff0c;我是拾荒君。 《完美世界》国漫第138集已更新。在这一集中&#xff0c;天人族的行为让人大跌眼镜&#xff0c;他们不仅没有对石昊感恩戴德&#xff0c;反而一心想要夺取他身上的所有秘法宝术。天人族的护道人登场&#xff0c;试图以强大的实力压制石…

Theta*: Any-Angle Path Planning on Grids 原文翻译

Theta*: Any-Angle Path Planning on Grids 文章目录 Theta*: Any-Angle Path Planning on Grids翻译摘要1.Introduction2. Path-Planning Problem and Notation3. Existing Terrain Discretizations4.Existing Path-Planning Algorithms4.1 A* on GridsA* with Post-Smoothed …

2023年【R1快开门式压力容器操作】考试资料及R1快开门式压力容器操作复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 R1快开门式压力容器操作考试资料参考答案及R1快开门式压力容器操作考试试题解析是安全生产模拟考试一点通题库老师及R1快开门式压力容器操作操作证已考过的学员汇总&#xff0c;相对有效帮助R1快开门式压力容器操作复…

python获取json所有节点和子节点

使用python获取json的所有父结点和子节点 并使用父节点加下划线命名子节点 先展示一段json代码 {"level1": {"level2": {"level3": [{"level4": "4value"},{"level4_2": "4_2value"}]},"level2_…

毅速丨3D打印随形水路为何受到模具制造追捧

在模具制造行业中&#xff0c;随形水路镶件正逐渐成为一种革命性的技术&#xff0c;其提高冷却效率、优化产品设计、降低成本等优点&#xff0c;为模具制造带来了巨大的创新价值。 随形水路是一种根据产品形状定制的冷却水路&#xff0c;其镶件可以均匀地分布在模具的表面或内部…

迪科DTC-F81收费机DTC-F82

迪科DTC-F81收费机是一款挂式收费机&#xff0c;广泛应用的学校食堂刷卡消费&#xff0c;DTC-F82收费机是台式消费机&#xff0c;常用在学校超市&#xff0c;放在桌子上使用的&#xff0c;这2款消费机是迪科畅销机型&#xff0c;如下图 机器质量可靠稳定&#xff0c;不少用户使…

vivado产生报告阅读分析19-设计收敛报告

Challenging Timing Paths “ Challenging Timing Paths ” &#xff08; 时序收敛困难的路径 &#xff09; 部分列出了“ Assessment Details ” &#xff08; 评估详情 &#xff09; 部分中未能通过检查的时序路径的关键属性。默认情况下&#xff0c; 该命令会对每个时钟组中…

2024北京林业大学计算机考研分析

24计算机考研|上岸指南 北京林业大学 特色优势 Characteristics & Advantages&#xff1a;信息学院创建于2001年&#xff0c;是一个年轻而有朝气的学院。学院秉承“结构、特色、质量、创新”的八字方针&#xff0c;坚持以“质量提升、行业融合”为核心的内涵式发展战略&am…

在Linux上搭建JavaWeb项目运行环境

文章目录 安装JDK安装Tomcat安装数据库 安装JDK 安装Oracle官方的JDK比较麻烦&#xff0c;我们在此处选择安装开源社区维护的openjdk。他们俩的差别不大且兼容。 安装Tomcat 我们把本地下载好的 tomcat.zip 包拖到Linux页面上&#xff0c;让Linux也有一个zip包&#xff0c;再…

运动鞋品牌识别

一、前期工作 1. 设置GPU from tensorflow import keras from tensorflow.keras import layers,models import os, PIL, pathlib import matplotlib.pyplot as plt import tensorflow as tfgpus tf.config.list_physical_devices("GPU")if gpus:gpu0 …

网络安全工程师究竟是什么?怎么入门?

首先啊骚年们我们必须先了解网络安全这个行业究竟是干啥的。 是打ctf的&#xff1f;一个个都像韩商言吴白那么帅刷刷敲几个代码就能轻易夺旗&#xff1f; 还是像十大黑客之一的米特尼克一样闯入了“北美空中防务指挥系统”的计算机主机内&#xff0c;还在被通缉逃跑期间控制了…

【多线程】Thread类的使用

目录 1.概述 2.Thread的常见构造方法 3.Thread的几个常见属性 4.启动一个线程-start() 5.中断一个线程 5.1通过共享的标记来进行沟通 5.2 调用 interrupt() 方法来通知 6.等待一个进程 7.获取当前线程引用 8.线程的状态 8.1所有状态 8.2线程状态和转移的意义 1.概述 …

基于java技术的社区交易二手平台

基于java技术的社区交易二手平台的设计与实现 &#xff08;一&#xff09;开发背景 随着因特网的日益普及与发展&#xff0c;更多的人们开始通过因特网来寻求便利。但是&#xff0c;许多人都觉得网上商店里的东西不贵。所以&#xff0c;有些顾客宁愿去那些用二次定价建立起来的…

Relabel与Metic Relabel

Prometheus支持多种方式的自动发现目标&#xff08;targets&#xff09;&#xff0c;以下是一些常见的自动发现方式&#xff1a; 静态配置&#xff1a;您可以在Prometheus配置文件中直接列出要监测的目标。这种方式适用于目标相对稳定的情况下&#xff0c;例如固定的服务器或设…

【C++】泛型编程 ⑮ ( 类模板示例 - 数组类模板 | 自定义类中持有指针成员变量 )

文章目录 一、支持 数组类模板 存储的 自定义类1、可拷贝和可打印的自定义类2、改进方向3、改进方向 - 构造函数4、改进方向 - 析构函数5、改进方向 - 重载左移运算符6、改进方向 - 重载拷贝构造函数 和 等号运算符 二、代码示例1、Array.h 头文件2、Array.cpp 代码文件3、Test…

网络安全—自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类&#xff0c;我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术&#xff0c;而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高&#xff1b; 二、则是发展相对成熟…

路径规划之Best-First Search算法

系列文章目录 路径规划之Dijkstra算法 路径规划之Best-First Search算法 路径规划之Best-First Search算法 系列文章目录前言一、Best-First Search算法1.1 起源1.2 过程 三、简单使用 前言 Best-First Search算法和Dijkstra算法类似&#xff0c;都属于BFS的扩展或改进 一、…

WebGL/threeJS面试题扫描与总结

什么是 WebGL&#xff1f;什么是 Three.js&#xff1f;请解释three.js中的WebGL和Canvas的区别&#xff1f; WebGL(全写Web Graphics Library)是一种3D绘图协议&#xff0c;这种绘图技术标准允许把JavaScript和OpenGL ES 2.0结合在一起&#xff0c;通过增加OpenGL ES 2.0的一个…

分享一个软件模拟USB,支持HID

文章目录 一、特性二、相对于替代解决方案的优势(1) 为什么不选择内置USB硬件的微控制器呢&#xff1f;(2) 与带 USB 硬件的微控制器相比的优势(3) 与单独的 USB 外设相比的优势(4) 与其他纯固件实现相比的优势 三、链接 一、特性 完全符合 USB 1.1 标准的低速设备&#xff0c…

Javascript每天一道算法题(十五)——轮转数组_中等(一行解决轮转数组)

文章目录 1、问题2、示例3、解决方法&#xff08;1&#xff09;方法1——while遍历&#xff08;较为复杂&#xff0c;不推荐&#xff09;&#xff08;2&#xff09;方法2&#xff08;直接截取后插入&#xff0c;推荐&#xff09;&#xff08;3&#xff09;方法3——优化方法2&a…