原生js操作dom节点的学习笔记

今天学习了如何用原生js写dom元素(节点),下面是结合所学文档W3C整理的笔记:

1.添加节点
创建节点:使用createElement创建元素,使用createTextNode创建文本节点
首先是一段html代码,下面的例子都引用这个。

<div id="div1">
this is first paragraph
this is second paragraph
</div>

Js部分:

//创建一个新的元素
var para=document.createElement("p");
//创建一个文本节点
var node=document.createTextNode("hello,reader");
//向元素追加这个文本节点
para.appendChild(node);
//找到一个已有元素
var element=document.getElementById("div1");
//向已有的元素追加这个新元素
element.appendChild(para);

效果图:

2.插入节点
appendChild,insertBefore,insertBefore接受两个参数,第一个是插入的节点,第二个是参照的节点
such as:insertBefore(a,b),a会插在b的前面

3.替换元素replaceChild()和删除节点removeChild()

//替换元素
var replaceChild=documnet.body.replaceChild(createNode,div1);
//删除节点
var parent=document.getElementById("div1");
var child=document.getElementById("p2");
child.parentNode.removeChild(child);

效果图:

4.节点的属性
firstChild:第一个子节点
lastChild:最后一个子节点
childNodes:子节点集合,获取其中子节点可以someNode.childNodes[index]或者someNode.childNodes.item(index)
nextSibling:下一个兄弟节点
previousSibling:上一个兄弟节点
parentNode:父节点

5.注意:childNodes.length存在跨浏览器问题。
Such as:

aaa
bbb
ccc
ddd
在ie中,ul.childNodes.length不会计算li之间的换行空格,从而得到数值为4
在firefox、chrome,safari中,会有包含li之间的空白符的5个文本节点,因此ul.childNodes.length为9
若要解决跨浏览器问题,可以将li之间的换行去掉,改成一行书写格式。

时间: 2024-10-14 06:52:54

原生js操作dom节点的学习笔记的相关文章

javascript-js里操作DOM节点性能损失最低的方式是什么?

问题描述 js里操作DOM节点性能损失最低的方式是什么? 可能这个标题不太合适,如下有个例子,一种是用原生js里的创建节点.文本节点.插入父节点内的方式,一种是用数据格式化字符串的方式 // 方式1: var a = document.createElement('a'); a.href = 'http://www.baidu.com'; a.target ='_blank'; var text = document.createTextNode('this is baidu homepage'

PHP操作MongoDB配置与学习笔记

PHP操作MongoDB配置与学习笔记有需要的朋友可参考参考.Mongo主要解决的是海量数据的访问效率问题,根据官方的文档,当数据量达到50GB以上的时候,Mongo的数据库访问速度是MySQL的 10倍以上 2,安装(windows only) 到官网下载对应的包 解压到d:mongodb 创建d:mongodbdata放置数据文件 3,运行mongodb d:mongodbbin下有一些可执行文件,其中mongod.exe是服务器端,mongo.exe是客户端. 运行cmd,输入 d:mon

浅析JS操作DOM的一些常用方法_基础知识

getElementById(): 获取有指定惟一ID属性值文档中的元素 getElementsByName(name): 返回的是数组 getElementsByTagName(): 返回具有指定标签名的元素子元素集合 getAttribute(): 返回指定属性名的属性值 document.getElementsByTagName("a")[0].getAttribute("target"); setAttribute(): 添加指定的属性,并为其赋指定的值.

JS访问DOM节点方法详解_javascript技巧

本文实例讲述了JS访问DOM节点方法.分享给大家供大家参考,具体如下: 查找并访问节点 你可通过若干种方法来查找您希望操作的元素: 通过使用 getElementById() 和 getElementsByTagName() 方法 通过使用一个元素节点的 parentNode.firstChild 以及 lastChild 属性 getElementById() 和 getElementsByTagName() getElementById() 和 getElementsByTagName()

Js操作DOM元素及获取浏览器高宽的简单方法_javascript技巧

在JavaScript中,经常会来获取Document文档元素,是 HTML 文档对象模型的英文缩写,Document Object Model for HTML,是基于浏览器编程,HTML DOM 定义了用于 HTML 的一系列标准的对象,以及访问和处理 HTML 文档的标准方法. 通过 DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性.可以对其中的内容进行修改和删除,同时也可以创建新的元素.HTML DOM 独立于平台和编程语言.它可被任何编程语言诸如 Java.JavaS

js操作DOM入门

一.什么是DOM?     什么叫DOM,DOM是文档对象模型(Document Object Model,是基于浏览器编程(在本教程中,可以说就是DHTML编程)的一套API接口,W3C出台的推荐标准,每个浏览器都有一些细微的差别,其中以Mozilla的浏览器最与标准接近.单纯的Javascript要结合DOM才能做DHTML编程,才能做出漂亮的效果.应用于WEB.这点几乎与其它的语言无异,正如C/C++需要库支持是一样的道理.否则就是单纯的在语法上做研究了.     因此,必须要对DOM有一

Bootstrap教程JS插件滚动监听学习笔记分享_javascript技巧

本文主要来学习一下JavaScript插件--滚动监听. 1.案例 滚动监听插件可以根据滚动条的位置自动更新所对应的导航标记.你可以试试滚动这个页面,看看左侧导航的变化. 先把实现的代码上了,你可以通过测试代码先来看看效果. <!DOCTYPE html> <html> <head> <title>Bootstrap</title> <meta name="viewport" content="width=de

js中回调函数的学习笔记_javascript技巧

回调函数是什么在学习之前还真不知道js回调函数怎么使用及作用了,下面本文章把我在学习回调函数例子给各位同学介绍一下吧,有需了解的同学不防进入参考. 回调函数原理: 我现在出发,到了通知你" 这是一个异步的流程,"我出发"这个过程中(函数执行),"你"可以去做任何事,"到了"(函数执行完毕)"通知你"(回调)进行之后的流程 例子 1.基本方法 <script language="javascript&q

关于Vue.js一些问题和思考学习笔记(1)_javascript技巧

前言 本文不是Vue.js的教程,只是一边看官网Vue的教程文档一边记录并总结学习过程中遇到的一些问题和思考的笔记. 1.vue和avalon一样,都不支持VM初始时不存在的属性 而在Angular里是可以支持的,因为angular采用脏检查的方式实现双向绑定,vue和avalon都是采用setter和getter实现双向绑定 例,如下代码在一秒后不会显示出"xxcanghai"的字样 <div id="app"> <h1>{{obj.tex