0

0

怎么用JavaScript修改DOM节点

PHPz

PHPz

发布时间:2023-04-19 14:14:05

|

1991人浏览过

|

来源于php中文网

原创

随着web应用程序的发展,javascript已成为不可或缺的一部分。javascript可以用来修改网页内容并实现动态效果。其中,修改dom是非常重要的一部分,因为它是与网页交互的关键。

什么是DOM?
DOM是文档对象模型,它是HTML文档的树形结构表示。在该文档中,每个HTML元素都是一个节点,例如:,

等等。这些节点可以有子节点和属性,如节点

可以包含子节点 ,它也可以拥有属性,如 class,id 等等。JavaScript通过操作这些节点来改变网页的内容。

如何选择节点?
要操作DOM,我们需要选择节点。这可以通过多种方式来实现,主要有以下几种方法:

  1. 通过id选择节点

使用 document.getElementById() 方法可以根据指定的id选择一个节点。如下所示:

var myNode = document.getElementById("myNode");

上述代码将选择一个带有id="myNode"的HTML元素。

立即学习Java免费学习笔记(深入)”;

  1. 通过class选择节点

选择一个或多个class属性相同的节点,可以使用getElementsByClassName() 方法。如下所示:

var myNodes = document.getElementsByClassName("classNode");

上述代码将选择所有 class 属性等于"classNode"的HTML元素。

  1. 通过标签名选择节点

选择所有指定标签名的节点可以使用getElementsByTagName() 方法。如下所示:

var myNodes = document.getElementsByTagName("p");

上述代码将选择文档中的所有

标签。

DOM节点属性的操作
DOM节点具有许多属性,如:id、class、title 等等。我们可以通过JavaScript来修改或获取这些属性的值。以下是一些常用的DOM节点属性操作方法:

Memories.ai
Memories.ai

专注于视频解析的AI视觉记忆模型

下载
  1. 获取或设置innerHTML属性

可以使用 getInnerHTML() 方法获取节点的innerHTML属性。也可以使用 setInnerHTML() 方法来设置节点的innerHTML属性。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的innerHTML属性
var myNodeInnerHTML = myNode.innerHTML;

// 设置节点的innerHTML属性
myNode.innerHTML = "新的HTML内容";
  1. 获取或设置innerText属性

获取innerText属性可以用 getInnerText() 方法,设置innerText属性可以使用 setInnerText() 方法。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的innerText属性
var myNodeInnerText = myNode.innerText;

// 设置节点的innerText属性
myNode.innerText = "新的文本内容";
  1. 获取或设置nodeType属性

nodeType 属性返回当前节点的类型,可以使用 getNodeType() 方法获取节点的nodeType属性。也可以使用 setNodeType() 方法来设置节点的nodeType属性。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的nodeType属性
var myNodeType = myNode.nodeType;

// 设置节点的nodeType属性
myNode.nodeType = 1;
  1. 获取或设置nodeName属性

nodeName 属性返回节点的名称,可以使用getnodeName() 方法获取节点的nodeName属性。也可以使用 setnodeName() 方法来设置节点的nodeName属性。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的nodeName属性
var myNodeName = myNode.nodeName;

// 设置节点的nodeName属性
myNode.nodeName = "span";
  1. 获取或设置nodeValue属性

nodeValue 属性返回或设置节点的值。可以使用 getNodeValue() 方法获取nodeValue属性。要设置属性值可以使用 setNodeValue() 方法。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的nodeValue属性
var myNodeValue = myNode.nodeValue;

// 设置节点的nodeValue属性
myNode.nodeValue = "新的节点内容";
  1. 获取或设置className属性

className 属性返回或设置节点的类名。可以使用getclassName() 方法获取className属性。要设置属性值可以使用setclassName() 方法。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的className属性
var myClassName = myNode.className;

// 设置节点的className属性
myNode.className = "newClass";
  1. 获取或设置id属性

id 属性返回或设置节点的id。可以使用getId() 方法获取id属性。要设置属性值可以使用setId() 方法。如下所示:

var myNode = document.getElementById("myNode");

// 获取节点的id属性
var myId = myNode.id;

// 设置节点的id属性
myNode.id = "newNode";

DOM节点的创建和插入
除了修改DOM节点属性外,还可以创建DOM节点并将其插入现有DOM结构中。

创建DOM节点
要创建一个DOM节点,可以使用createElement() 方法。如下所示:

// 创建一个新的 

元素 var newNode = document.createElement("p"); // 设置元素的内容 newNode.innerHTML = "新的 HTML 内容"; // 将新元素添加到文档中 document.body.appendChild(newNode);

插入DOM节点
有以下几点可以插入DOM节点:

  1. 插入父节点
    使用appendChild() 方法可以将元素添加到父节点的末尾。如下所示:
var parent = document.getElementById("parent");

// 创建新的 
  • 元素 var newNode = document.createElement("li"); // 设置元素的内容 newNode.innerHTML = "新的列表项"; // 将新元素添加到父节点的末尾 parent.appendChild(newNode);
    1. 插入兄弟节点
      使用insertBefore() 方法可以将一个新的节点插入到另一个节点之前。如下所示:
    var newNode = document.createElement("li");
    
    // 设置元素的内容
    newNode.innerHTML = "新的列表项";
    
    // 将新元素添加到 "node" 元素之前
    parent.insertBefore(newNode, node);
    1. 替换节点
      使用 replaceChild() 方法可以替换一个节点。如下所示:
    var newNode = document.createElement("li");
    
    // 设置元素的内容
    newNode.innerHTML = "新的列表项";
    
    // 替换父节点下的第二个子节点
    parent.replaceChild(newNode, parent.childNodes[1]);

    DOM节点的移除
    DOM节点可以通过多种方式移除。以下是一些常用的方法:

    1. 移除子节点
      使用 removeChild() 方法可以移除一个子节点。如下所示:
    var parent = document.getElementById("parent");
    
    // 移除 "node" 元素
    parent.removeChild(node);
    1. 移除自身
      使用 remove() 方法可以移除节点本身。如下所示:
    var node = document.getElementById("node");
    
    // 移除节点本身
    node.remove();

    总结
    通过使用JavaScript操作DOM,可以轻松地修改网页内容,包括HTML标记和文本内容。我们可以选择节点、更改节点属性、创建和插入新元素以及删除现有节点。这些操作使得网站可以动态地更新和响应用户行为。

    java速学教程(入门到精通)
    java速学教程(入门到精通)

    java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

    下载

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    相关专题

    更多
    菜鸟裹裹入口以及教程汇总
    菜鸟裹裹入口以及教程汇总

    本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

    0

    2026.01.22

    Golang 性能分析与pprof调优实战
    Golang 性能分析与pprof调优实战

    本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

    9

    2026.01.22

    html编辑相关教程合集
    html编辑相关教程合集

    本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

    56

    2026.01.21

    三角洲入口地址合集
    三角洲入口地址合集

    本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

    51

    2026.01.21

    AO3中文版入口地址大全
    AO3中文版入口地址大全

    本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

    397

    2026.01.21

    妖精漫画入口地址合集
    妖精漫画入口地址合集

    本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

    118

    2026.01.21

    java版本选择建议
    java版本选择建议

    本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

    3

    2026.01.21

    Java编译相关教程合集
    Java编译相关教程合集

    本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

    16

    2026.01.21

    C++多线程相关合集
    C++多线程相关合集

    本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

    11

    2026.01.21

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号