js中的DOM
来源:互联网 发布:python博客 编辑:程序博客网 时间:2024/06/07 02:20
一.DOM的创建
DOM节点一般对应的是标签,文本或者是一个HTML属性
1.Element,元素
2.Attribute,属性
3.Text,文本
DOM 节点的创建标签document.createElement和DOM 节点的创建文本docment.createTextNode
例子:
var node1 = document.createElement(‘div’);
var node2 = document.createTextNode(‘hello world!’);
document.body.appendChild(node1);
文本插入到标签中用
node1.appendChild(node2);
二.DOM的查询
//返回标签内具有第一个类名是myclass的元素
var el = document.querySelector(‘.myclass’);
// 返回一个文档中所有的class为”note”或者 “alert”的div元素
var els = document.querySelectorAll(“div.note, div.alert”);
// 获取元素
var el = document.getElementById(‘note’);
var els = document.getElementsByClassName(‘highlight’);
var els = document.getElementsByTagName(‘td’);
// 获取父元素、父节点
var parent = ele.parentElement;
var parent = ele.parentNode;//只读,没有兼容性问题
var offsetParent=ele.offsetParent;//只读,找到最近的有定位的父节点。
//没有定位父级时,默认是body;但在IE7以下,如果当前元素没有定位属性,返回body,如果有,返回HTML;
// 获取子节点,子节点可以是任何一种节点,可以通过nodeType来判断
var nodes = ele.children;//标准下、非标准下都只含元素类型,但对待非法嵌套的子节点,处理方式与childNodes一致。
var nodes = ele.childNodes;//非标准下:只包含元素类型,不会包含非法嵌套的子节点。
//标准下:包含元素和文本类型,会包含非法嵌套的子节点。
//获取元素属性列表
var attr = ele.attributes;
// 查询子元素
var els = ele.getElementsByTagName(‘td’);
var els = ele.getElementsByClassName(‘highlight’);
// 当前元素的第一个/最后一个子元素节点
var el = ele.firstChild;//对待标准和非标准模式,如childNods
var el = ele.lastChild;
var el = ele.firstElementChild;//非标准不支持
var el = ele.lastElementChild;
// 下一个/上一个兄弟元素节点
var el = ele.nextSibling;
var el = ele.previousSibling;
var el = ele.nextElementSibling;
var el = ele.previousElementSibling;
三.DOM的更改
// 添加、删除子元素
ele.appendChild(el);
ele.removeChild(el);
// 替换子元素
ele.replaceChild(el1, el2);
// 插入子元素
parentElement.insertBefore(newElement, referenceElement);
//克隆元素
ele.cloneNode(true) //该参数指示被复制的节点是否包括原节点的所有属性和子节点
四.属性操作
// 获取一个{name, value}的数组
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").attributes["value"];document.write(d.name);document.write(d.value);//显示value aaa</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").getAttribute("value");document.write(d);//显示 aaa</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").setAttribute("good","hello");alert(document.getElementById("t").innerHTML)</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.createAttribute("good");document.getElementById("sss").setAttributeNode(d);alert(document.getElementById("t").innerHTML)</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").removeAttribute("value");alert(document.getElementById("t").innerHTML)</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").getAttributeNode("value"); document.write(d.name);document.write(d.value);//显示 value aaa</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.createAttribute("good");document.getElementById("sss").setAttributeNode(d);alert(document.getElementById("t").innerHTML);</script>
<body><div id = "t"><input type = "hidden" id = "sss" value = "aaa"></div></body><script>var d = document.getElementById("sss").getAttributeNode("value")document.getElementById("sss").removeAttributeNode(d); alert(document.getElementById("t").innerHTML);</script>
*
*转自:http://blog.csdn.net/firesnake666/article/details/6031131
innerHTML与outerHTML的区别?
innerHTML:内部HTML;
outerHTML:外部HTML;
innerText:内部文本,content;
outerText:内部文本,content;
其他来自:http://www.cnblogs.com/shytong/p/4995185.html
创建完节点需要插入到文本中
往body中插入
attributes:获取一个属性作为对象
getAttribute:获取某一个属性的值
getAttributeNode:获取一个节点作为对象
attributes可以获取一个对象中的一个属性,并且作为对象来调用,注意在这里要使用“[]”,IE在这里可以使用“()”,考虑到兼容性的问题,要使用“[]”。
关于attributes属性的使用方式上,IE和FF有巨大的分歧,在此不多介绍。
attributes的使用方法:(IE和FF通用)getAttribute,setAttribute,createAttribute,removeAttribute四兄弟的概念比较容易理解,使用方法也比较简单,唯一需要注意这几点:
1、createAttribute在使用的时候不需要基于对象的,document.createAttribute()就可以。
2、setAttribute,createAttribute在使用的时候如果是使用的时候不要使用name,type,value等单词,IE都FF的反应都奇怪的难以理解。
3、createAttribute在使用的时候如果只定义了名字,没有d.nodeValue = “hello”;语句定义值,FF会认为是一个空字符串,IE认为是undefined,注意到这点就可以了。
getAttribute的使用方法:
setAttribute的使用方法:(你会发现多了一个名为good的属性hello)
createAttribute的使用方法:(多了一个名为good的空属性)
removeAttribute的使用方法:(少了一个)
getAttributeNode,setAttributeNode,removeAttributeNode三个方法的特点是都直接操作一个node(节点),removeAttributeNode在一开始的时候总会用错,但是充分理解了node的含义的时候,就能够应用自如了。
- js 中的dom操作
- JS中的DOM简介
- JS中的DOM事件
- js中的DOM
- JS中的DOM
- js中的DOM
- Js中的DOM事件
- js中的DOM编程
- js操作iframe中的dom
- JS中的DOM方法大全
- JS中的BOM和DOM
- js中的DOM操作汇总
- Html-js中的DOM操作
- js中的DOM操作汇总
- js中的DOM操作汇总
- 怎么理解js中的 dom 对象
- js中的DOM常用语句总结
- 精通js之 处理DOM中的空格
- AJAX详解
- Android Hook神器——XPosed入门(登陆劫持演示)
- 安卓学习笔记之ViewPager
- strcpy和strncpy的模拟实现
- 第19节-认识 BASH 这个 Shell
- js中的DOM
- Ubuntu通过修改配置文件进行网络配置
- 常用的命令行工具安装
- 02. JSP 基本语法
- 游戏开发中的人工智能(十二):概率概论
- mybatis学习入门使用注解增删改查(二)
- mysql数据库操作部分汇总
- SpringMVC对返回值的封装
- jquery事件标准传参