前面有讲过一些DOM的基本概念

今天来说一下DOM 的一些基本操作,主要有创建节点,追加节点,删除节点。

1.创建DOM元素:

createElement(标签名) —— 创建一个节点

appendChild(节点) —— 追加一个节点

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM 操作</title>
<script type="text/javascript">
window.onload = function(){
var oBtn = document.getElementById("btn1");
var oUl = document.getElementById("ul1");
var oTxt = document.getElementById("txt1");
oBtn.onclick = function(){
var oLi = document.createElement('li');
oLi.innerHTML = oTxt.value;
oUl.appendChild(oLi);
}
}
</script>
</head>
<body>
<input type="text" id="txt1" />
<input type="button" name="btn1" id="btn1" value="创建li" />
<ul id="ul1"></ul>
</body>
</html>

2.插入元素:

insertBefore(节点, 原有节点) —— 在已有元素前插入

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM 操作</title>
<script type="text/javascript">
window.onload = function(){
var oBtn = document.getElementById("btn1");
var oUl = document.getElementById("ul1");
var oTxt = document.getElementById("txt1");
var aLi = document.getElementsByTagName("li"); oBtn.onclick = function(){
var oLi = document.createElement('li');
oLi.innerHTML = oTxt.value;
if(aLi.length > 0){
oUl.insertBefore(oLi, aLi[0]);
}else{
oUl.appendChild(oLi);
} }
}
</script>
</head>
<body>
<input type="text" id="txt1" />
<input type="button" name="btn1" id="btn1" value="创建li" />
<ul id="ul1"></ul>
</body>
</html>

3.删除节点:

removeChild(节点)  —— 删除一个节点

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>DOM 操作</title>
<script type="text/javascript">
window.onload = function(){
//删除节点
var oUl = document.getElementById("ul1");
var aA = document.getElementsByTagName("a"); for(var i=0;i<aA.length;i++){
aA[i].onclick = function(){
oUl.removeChild(this.parentNode);
}
}
}
</script>
</head>
<body>
<ul id="ul1">
<li>第一条 <a href="javascript:;">删除</a></li>
<li>第二条 <a href="javascript:;">删除</a></li>
<li>第三条 <a href="javascript:;">删除</a></li>
</ul>
</body>
</html>

4.文档碎片(只能提升低级浏览器的性能,稍作了解即可):

createDocumentFragment

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>文档碎片</title>
<script type="text/javascript">
window.onload = function(){ var oUl = document.getElementById("ul1");
var oFrag = document.createDocumentFragment(); //创建文档碎片 for(var i=0;i<10000;i++){
var oLi = document.createElement("li");
oFrag.appendChild(oLi);
} oUl.appendChild(oFrag);
}
</script>
</head>
<body>
<ul id="ul1"> </ul>
</body>
</html>

js学习笔记33----DOM操作的更多相关文章

  1. jQuery学习笔记之DOM操作、事件绑定(2)

    jQuery学习笔记之DOM操作.事件绑定(2) --------------------学习目录------------------------ 4.DOM操作 5.事件绑定 源码地址: https ...

  2. jQuery学习笔记(DOM操作)

    DOM操作的分类 一般来说,DOM操作分为3个方面,即DOM Core.HTML-DOM和CSS-DOM. 1. DOM Core DOM Core并不专属于JavaScript,任何一种支持DOM的 ...

  3. js学习笔记2---HTML属性操作

    1.HTML属性操作:读.写 属性名 属性值   2.属性读操作:获取.找到 a) 语法:元素.属性名 如:document.getElementById(“btn”).value; b) 字符串的连 ...

  4. js学习笔记9----时间操作

    1.时间操作函数如下: new Date();   //获取系统时间 getFullYear(); //年 getMonth()+1; //月,初始值为0 getDate(); //日 getDay( ...

  5. js学习笔记21----表格操作

    1.获取表格元素: tHead : 表格头 tBody : 表格主体内容 tFoot : 表格尾 rows  : 表格行 cells  : 表格列 如获取表格第一行第一列的数据: <script ...

  6. js学习笔记11----表单操作

    1.复选框选中 var aInput = document.getElementsByTagname('input'); aInput[0].checked=true;

  7. js学习笔记--dom部分(一)

    js 学习整理之Dom部分 前面我总结了我最近学习js基础部分,当时提到过js分了三大部分,第一部分ECMA基础也就是第一次写的基础部分, 第二部分也就是DOM部分,也就是这里要写的内容的,然后第三部 ...

  8. JS学习笔记5_DOM

    1.DOM节点的常用属性(所有节点都支持) nodeType:元素1,属性2,文本3 nodeName:元素标签名的大写形式 nodeValue:元素节点为null,文本节点为文本内容,属性节点为属性 ...

  9. 基于jquery的插件turn.js学习笔记

    基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...

  10. 【转】Backbone.js学习笔记(二)细说MVC

    文章转自: http://segmentfault.com/a/1190000002666658 对于初学backbone.js的同学可以先参考我这篇文章:Backbone.js学习笔记(一) Bac ...

随机推荐

  1. Socket详解-Linux Socket编程(不限Linux)

    “一切皆Socket!” 话虽些许夸张,但是事实也是,现在的网络编程几乎都是用的socket. ——有感于实际编程和开源项目研究. 我们深谙信息交流的价值,那网络中进程之间如何通信,如我们每天打开浏览 ...

  2. jQuery on() 方法问题

    <!DOCTYPE html><html><head><script src="https://cdn.bootcss.com/jquery/1.1 ...

  3. Linux驱动面试题总结

    1. Linux设备中字符设备与块设备有什么主要的区别?请分别列举一些实际的设备说出它们是属于哪一类设备. 字符设备:字符设备是个能够像字节流(类似文件)一样被访问的设备,由字符设备驱动程序来实现这种 ...

  4. Javascript和OCX的结合历程

    这种相对古老的调用方式主要用在Windows系列平台上的多种语言软件之间的合作. 此次项目合作方式是,客户提供语音功能的OCX模块和VC++客户端软件,我需要在WEB软件中调用其中的接口开发相关功能, ...

  5. 帆软报表和jeecg的进一步整合--ajax给后台传递map类型的参数

    下面是页面代码: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  6. Spring里的FactoryBean和BeanFactory有啥区别?

    分别看这俩文章就知道了 Spring的FactoryBean使用 Spring加载xml配置文件的方式 ApplicationContext

  7. 深入讲解Android Property机制

    深入讲解Android Property机制 侯亮 1      概述 Android系统(本文以Android 4.4为准)的属性(Property)机制有点儿类似Windows系统的注册表,其中的 ...

  8. 封装一个音乐列表music-list基础组件,可以共用,哪个需要的时候就是哪个props相应的值

    1.封装music-lsit组件: <template> <div class="music-list singer-detail"> <div cl ...

  9. VC++ 知识点

    1.寻找文件时,CFileFind类的使用. 2.寻找目录时使用BROWSEINFO,其中包含了用户选中目录的重要信息. 3.LPITEMIDLIST类 4.目录选择对话框的使用SHBrowseFor ...

  10. IDEA用maven打war包

    打包其实很简单: 把tomcat停掉,点击Maven Projects ,点击clean , 点击package 自动打包完成. 查看包位置: 这是包的位置,通过查看PATH就可以知道你的包在哪里了. ...