当前位置: 首页 > news >正文

文档对象模型-DOM(一)

    首先看一下DOM树结构:

 

每个节点都是一个对象,拥有方法和属性。

脚本可以访问以及更新DOM树(不是源代码)。

针对DOM树的修改都会反映到浏览器。

 

访问并更新DOM树需要两个步骤

  一、定位到与需要操作的元素所对应的节点

       访问元素的相关方法和属性

            1.选择单个元素节点方法

                (1) getElementById() //使用元素的id属性(在页面中应是唯一)

                (2) querySelector() //使用css选择器,返回第一个匹配的元素

                (3) 通过使用在DOM树中从第一个元素遍历到另一个元素的方式来选择单独的元素

           2.选择多个元素(当一个DOM方法可以返回多个元素时,会返回一个NodeList)

                (1) getElementsByClass() //选择所有在class属性中使用了特定值得元素

                (2) getElementsByTagName() //选择所有使用了指定标记的元素

                (3) 使用css选择器来选择所有匹配的元素

           3.在元素节点之间遍历

                (1) parentNode //选择当前元素节点的父节点(只返回一个元素)

                (2) previousSibling/nextSibling //选择DOM树中的前一个/后一个兄弟节点

                (3) firstChild/lastChild //返回当前元素的第一个/最后一个子节点

  二、使用它的文本内容、子元素或属性。

           1.访问/更新文本节点

                使用文本节点的唯一属性 nodeValue 从元素中获取文本

           2.操作HTML内容

                innerHTML:可以访问子元素和文本内容

                textContent:仅能访问文本内容

                createElement(): 创建新节点

                createTextNode():创建文本节点

                appendChlid():添加子节点

                removeChlid():移除子节点

          3.访问或更新属性值

                ClassName/id:使用它们获取或更新class和id的值

                hasAttribute():用来检查属性是否存在

                getAttribute():用来获取属性值

                setAttribute():用来更新属性值

                removeAttribute():用来移除属性

转载于:https://www.cnblogs.com/muqiangwei/p/5296740.html

相关文章:

  • 盛一平自我介绍
  • 《Java高级程序设计》第二次作业
  • 在PHP中常遇到的变量处理函数库(isset()、unset()、empty、is_array...
  • Asp.Net中级 - 5.HttpHandler案例
  • Bootstrap学习笔记(一)-----表单
  • MySQL体系结构图
  • [JMS 3] ActiveMQ实现简单的helloworld
  • nullnull阿里巴巴2013实习生招聘笔试题
  • iOS:OC与JS交互
  • 从C到iOS基础知识各阶段的书籍及提高实战图书推荐
  • [nginx] 网上最全面nginx教程(近100篇文章整理)
  • ios工程文件的重命名
  • Linux基础命令小结(下)
  • Python~字典
  • 回顾下最小重量机器设计问题
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • exports和module.exports
  • go append函数以及写入
  • JAVA多线程机制解析-volatilesynchronized
  • python 学习笔记 - Queue Pipes,进程间通讯
  • python大佬养成计划----difflib模块
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Spring Security中异常上抛机制及对于转型处理的一些感悟
  • 从tcpdump抓包看TCP/IP协议
  • 对象管理器(defineProperty)学习笔记
  • 将回调地狱按在地上摩擦的Promise
  • 面试总结JavaScript篇
  • 爬虫模拟登陆 SegmentFault
  • 扑朔迷离的属性和特性【彻底弄清】
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 原生Ajax
  • HanLP分词命名实体提取详解
  • Java性能优化之JVM GC(垃圾回收机制)
  • Linux权限管理(week1_day5)--技术流ken
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)memcache、redis缓存
  • (转)利用PHP的debug_backtrace函数,实现PHP文件权限管理、动态加载 【反射】...
  • ***测试-HTTP方法
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net Signalr 使用笔记
  • .NET开发人员必知的八个网站
  • .php结尾的域名,【php】php正则截取url中域名后的内容