博客
关于我
js中的DOM操作汇总
阅读量:424 次
发布时间:2019-03-06

本文共 2002 字,大约阅读时间需要 6 分钟。

DOM操作详解

一、DOM节点创建

DOM节点是网页中的基本单元,通常对应 HTML 标签、文本或属性。每个节点都有 nodeType 属性,表示节点类型:

  • Element(元素):对应 HTML 标签
  • Attribute(属性):对应 HTML 属性
  • Text(文本):对应标签内的文本内容

创建 DOM 节点的主要方法是 document.createElementdocument.createTextNode

var node1 = document.createElement('div');
var node2 = document.createTextNode('hello world!');

二、DOM查询

DOM 提供多种方法查询文档中的元素:

  • 单个元素查询

    • document.getElementById('xxx'):根据 id 查询元素
    • document.querySelector(".myclass"):根据类名查询元素
    • document.getElementsByClassName('highlight'):根据类名查询所有元素
  • 多个元素查询

    • document.querySelectorAll("div.note, div.alert"):同时查询多个类名的元素
    • document.getElementsByTagName('td'):根据标签名查询所有元素

DOM 也提供了导航方法查询父子节点:

  • 父节点

    • ele.parentElement:返回父节点
    • ele.parentNode:返回父节点(不考虑兼容性)
    • ele.offsetParent:返回最近有定位的父节点
  • 子节点

    • ele.children:返回所有子节点(包含文本节点)
    • ele.firstChildele.lastChild:返回第一个或最后一个子节点
    • ele.firstElementChildele.lastElementChild:返回第一个或最后一个子元素
  • 元素属性

    • ele.attributes:获取所有属性
    • ele.getAttribute('class'):获取指定属性
    • ele.setAttribute('class', 'highlight'):设置属性
    • ele.hasAttribute('class'):判断是否有属性
    • ele.removeAttribute('class'):移除属性

三、DOM更改

DOM 操作允许对文档进行实时修改:

  • 添加子元素

    ele.appendChild(el);
  • 删除子元素

    ele.removeChild(el);
  • 替换子元素

    ele.replaceChild(el1, el2);
  • 插入子元素

    parentElement.insertBefore(newElement, referenceElement);
  • 克隆元素

    ele.cloneNode(true); // 包括所有属性和子节点

四、属性操作

处理元素属性的方法:

  • 获取属性

    var attrs = el.attributes; // 返回属性数组 [{name, value}]
    var c = el.getAttribute('class'); // 获取指定属性值
  • 设置属性

    el.setAttribute('class', 'highlight'); // 设置属性值
  • 判断属性

    el.hasAttribute('class'); // 是否存在属性
    el.removeAttribute('class'); // 移除属性
  • 判断是否有属性

    el.hasAttributes(); // 是否有任何属性

innerHTML 与 outerHTML

innerHTMLouterHTML 都用于获取或设置元素的 HTML 内容,但有以下区别:

  • innerHTML

    • 只返回元素内的 HTML 内容
    • 示例:<div></div> 内部 HTML 为 content<div></div>(假设 content 是 div 内的内容)
  • outerHTML

    • 返回包括元素本身在内的 HTML 内容
    • 示例:<div></div> 包含所有嵌套的内容
    • outerHTML 通常用于获取完整的元素结构

jQuery 的 html() 方法

jQuery 的 html() 方法与普通的 innerHTML 有区别:

  • html():调用 innerHTML 来获取内容,但处理异常时会使用 .empty().append() 进行重建
  • 注意事项:在 IE8 中,由于某些元素(如 input)的 innerHTML 是只读属性,直接调用可能会失败

通过以上方法,DOM 操作为开发者提供了强大的工具,能够实时修改网页内容,提升用户体验。

转载地址:http://bzsuz.baihongyu.com/

你可能感兴趣的文章
NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027
查看>>
NIFI数据库同步_多表_特定表同时同步_实际操作_MySqlToMysql_可推广到其他数据库_Postgresql_Hbase_SqlServer等----大数据之Nifi工作笔记0053
查看>>
NIFI汉化_替换logo_二次开发_Idea编译NIFI最新源码_详细过程记录_全解析_Maven编译NIFI避坑指南001---大数据之Nifi工作笔记0068
查看>>
NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
查看>>
NIH发布包含10600张CT图像数据库 为AI算法测试铺路
查看>>
Nim游戏
查看>>
NIO ByteBuffer实现原理
查看>>
Nio ByteBuffer组件读写指针切换原理与常用方法
查看>>
NIO Selector实现原理
查看>>
nio 中channel和buffer的基本使用
查看>>
NIO基于UDP协议的网络编程
查看>>
NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
查看>>
Nitrux 3.8 发布!性能全面提升,带来非凡体验
查看>>
NI笔试——大数加法
查看>>
NLog 自定义字段 写入 oracle
查看>>
NLog类库使用探索——详解配置
查看>>
NLP 基于kashgari和BERT实现中文命名实体识别(NER)
查看>>
NLP 项目:维基百科文章爬虫和分类【01】 - 语料库阅读器
查看>>
NLP_什么是统计语言模型_条件概率的链式法则_n元统计语言模型_马尔科夫链_数据稀疏(出现了词库中没有的词)_统计语言模型的平滑策略---人工智能工作笔记0035
查看>>
NLP学习笔记:使用 Python 进行NLTK
查看>>