<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<title></title>
</head>
<body lang="en-us">
<p><span class="className">1</span><i>2</i></p>
<div></div>
</body>
<script> /*-----------------------------------属性-----------------------------------*/ //childNodes -当前节点的全部子级节点(有的浏览器里会把元素里的空白节点转换成文本节点 nodeType==3)
var nodes=document.getElementsByTagName('p')[0].childNodes;
for(var i=0;i<nodes.length;i++){
/*
* <span>1</span>
* <i>2</i>
* */
console.info(nodes[i]);
} var childNodes=document.getElementsByTagName('p')[0];
//firstChild -childNodes里的第一个节点 相当于childNodes[0] *所有主流浏览器都支持 firstChild 属性。
//lastChild -childNodes里的最后一个节点 相当于childNodes[childNodes.length-1]
/*
* <span>1</span>
* <i>2</i>
* */
console.info(childNodes.firstChild);
console.info(childNodes.lastChild); //parentNode -父节点 如果指定节点没有父节点,则返回 null。
/*
*<p></p>
* */
console.info(childNodes.lastChild.parentNode); //nextSibling previousSibling -兄弟节点 如果没有 nextSibling previousSibling节点,则返回值为 null
/*
*<span>1</span>
*<i>2</i>
* */
console.info(childNodes.lastChild.previousSibling);
console.info(childNodes.firstChild.nextSibling); //nodeValue -返回元素节点里的值 注意:文本始终位于文本节点中
/*
*1
* */
console.info(childNodes.firstChild.childNodes[0].nodeValue); //nodeName -返回元素节点名称时,并不包含html里的<>符号
/*
* #text
* SPAN
* */
console.info(childNodes.firstChild.childNodes[0].nodeName);
console.info(childNodes.firstChild.nodeName); //tagName -返回元素的标签名
/*
*undefined
* SPAN
* */
console.info(childNodes.firstChild.childNodes[0].tagName);
console.info(childNodes.firstChild.tagName); //className -属性设置或返回元素的 class 属性
/*
*className
* */
console.info(childNodes.firstChild.className); // id -设置或返回元素的 id
childNodes.firstChild.id='hello';
console.info(childNodes.firstChild.id); //innerHTML -设置或返回元素的 inner HTML //lang -设置或返回元素的语言代码
console.info(document.getElementsByTagName('body')[0].lang); //title -设置或返回元素的标题 //textContent -返回所有子及后代节点的文本
console.info(document.getElementsByTagName('body')[0].textContent); //ownerDocument -以 Document 对象的形式返回节点的 owner document
console.info(document.getElementsByTagName('body')[0].ownerDocument); /*-----------------------------------方法-----------------------------------*/ //appendChild() -向节点添加最后一个子节点 也可以使用 appendChild() 方法从一个元素向另一个元素中移动元素
var p=document.getElementsByTagName('p')[0];
var textNode=document.createTextNode('world!');
var newElementNode=document.createElement('b');
newElementNode.appendChild(textNode);//添加元素
p.appendChild(newElementNode);//添加元素
var div=document.getElementsByTagName('div')[0];
div.appendChild(p);//移动元素 //cloneNode -克隆元素 创建节点的拷贝,并返回该副本
var cloneNode=div.cloneNode(true);//克隆所有后代,参数设置为true
document.getElementsByTagName('body')[0].appendChild(cloneNode); //insertBefore -在指定的已有子节点之前插入新的子节点
var listNode=document.createElement('ul');
var liNode=document.createElement('li');
listNode.appendChild(liNode);
var body=document.getElementsByTagName('body')[0];
body.appendChild(listNode);
var textNode=document.createTextNode('haha!');
body.insertBefore(textNode,listNode); //removeChild -从元素中移除子节点 返回值是对删除节点的引用
/*
* "haha"
* */
var delNode=textNode.parentNode.removeChild(textNode);
console.info(delNode); //replaceChild -用新节点替换某个子节点
var newNode=document.createTextNode('hehe!');
var oldNode=document.getElementsByTagName('p')[0].childNodes[0];
oldNode.parentNode.replaceChild(newNode,oldNode); //setAttribute getAttribute -设置和返回指定属性名的属性值
var div2=document.getElementsByTagName('div')[0];
div2.setAttribute('data-id','71121');
console.info(div2.getAttribute('data-id'));//71121 //normalize -移除空的文本节点,并连接相邻的文本节点
function addTextNode(){
var text=document.createTextNode('文本节点内容');
div2.appendChild(text);
}
addTextNode();
addTextNode();
console.info(div2.childNodes.length);
div2.normalize();
console.info(div2.childNodes.length);

原生js操作dom备忘的更多相关文章

  1. 框架操作DOM和原生js操作DOM比较

    问题引出 对于Angular和React操作DOM的速度,和原生js操作DOM的速度进行了一个比较: 一个同学做的demo 代码如下: <!DOCTYPE html> <html n ...

  2. 原生js操作Dom节点:CRUD

    知识点,依然会遗忘.我在思考到底是什么原因.想到研究生考试准备的那段岁月,想到知识体系的建立,知识体系分为正向知识体系和逆向知识体系:正向知识体系可以理解为教科书目录,逆向知识体系可以理解考试真题. ...

  3. 原生js操作DOM基础-笔记

    原文参考http://mp.weixin.qq.com/s?__biz=MzU3MDA0NTMzMA==&mid=2247485490&idx=1&sn=15197b4b53e ...

  4. 原生js操作dom的方法

    今天学习了原生js的dom节点的操作,就记录下来,仅供自己以后参考. 1)创建节点:除了可以使用createElement创建元素,也可以使用createTextNode创建文本节点. documen ...

  5. 原生Js操作DOM

    查找DOM .querySelectorAll(),它接受包含一个CSS选择器的字符串参数,返回一个表示文档中匹配选择器的所有元素的NodeList元素. .querySelector(),返回第一个 ...

  6. 原生js 操作dom

    1.一些常用的方法 obj.getElementById() 返回带有指定 ID 的元素. obj.getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节 ...

  7. 原生js操作Dom命令总结

    常用的dom方法 document.getElementById(“box”);//通过id获取标签    document.getElementsByTagName(“div”);根据标签名获取页面 ...

  8. js 操作COOKE备忘

    function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf( ...

  9. 使用原生 JavaScript 操作 DOM

    原文:https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery/ 微软官方放弃了 IE10-,所以现在可以放心使用 ...

随机推荐

  1. .NET 4.0运行.NET 2.0兼容方法

    需要在相同目录下放一个.config文件,例如xxx.exe,就需要一个xxx.exe.config文件,内容如下: <?xml version="1.0"?> < ...

  2. [转]uboot中SPL作用

    转:http://blog.csdn.net/voice_shen/article/details/17373671 这篇文章写的非常详细 [u-boot: 2014.01-rc1] 本文将使用sam ...

  3. terminator 安装及使用

    1. 安装 $ sudo apt-get install terminator 2. 右键设置首选项 背景设置为0.8透明度, 字体挤在一起:在ubuntu下请选择mono后缀的字体就可以了 3. 使 ...

  4. emacs配置eslint 语法检查.找不到node解决

    使用emacs配置eslint 当调用语法检查时报错 Suspicious state from syntax checker javascript-eslint: Checker javascrip ...

  5. 集合类 toArray(T[])

    HashSet<String> deDupe = new LinkedHashSet<>(Arrays.asList(origParams.getParams(paramNam ...

  6. 如何保护.net中的dll文件(防破解、反编译)

    如何保护.net中的dll文件(防破解.反编译) 2010-07-19 15:08 [小 大] 来源: 赛迪网 评论: 0 分享至:      百度权重查询 词库网 网站监控 服务器监控 SEO监控  ...

  7. delphi.位操作

    位操作网上有很多介绍,请上网google/baidu,比如: 位操作技巧实例大全: http://blog.csdn.net/g_spider/article/details/5750665 位操作基 ...

  8. AE开发示例之GPBufferLayer

    using System; using System.Drawing;using System.Text;using System.Windows.Forms;using System.Runtime ...

  9. python 核心编程课后练习(chapter 5)

    5-2 #5-2 def mul(x, y): return x * y print mul(4,5) 5-3 #5-3 def value_score(num): if 90<=num< ...

  10. NOIP模拟赛-护花

    [题目描述] 约翰留下他的N(N<=100000)只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时候,他看到了一幕惨剧:牛们正躲在他的花园里,啃食着他心爱的美丽 ...