js-dom学习
2016-11-11 00:00
183 查看
1.HTML文档被浏览器解析后就是一棵DOM树,要改变HTML的结构,就需要通过JavaScript来操作DOM。DOM是一个树形结构。操作一个DOM节点实际上就是这么几个操作:
ID在HTML文档中是唯一的,所以document.getElementById()可以直接定位唯一的一个DOM节点。document.getElementsByTagName()和document.getElementsByClassName()总是返回一组DOM节点。要精确地选择DOM,可以先定位父节点,再从父节点开始选择,以缩小范围。
第二种方法是使用querySelector()和querySelectorAll().
a.一种是修改innerHTML属性,这个方式非常强大,不但可以修改一个DOM节点的文本内容,还可以直接通过HTML片段修改DOM节点内部的子树;
第二种是修改innerText或textContent属性,这样可以自动对字符串进行HTML编码,保证无法设置任何HTML标签.两者的区别在于读取属性时,innerText不返回隐藏元素的文本,而textContent返回所有文本。
修改CSS也是经常需要的操作。DOM节点的style属性对应所有的CSS,可以直接获取或设置。因为CSS允许font-size这样的名称,但它并非JavaScript有效的属性名,所以需要在JavaScript中改写为驼峰式命名fontSize:
b.插入dom元素
d. 要删除一个节点,首先要获得该节点本身以及它的父节点,然后,调用父节点的removeChild把自己删掉.
删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置。
你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新.
a更新:更新该DOM节点的内容,相当于更新了该DOM节点表示的HTML的内容; b遍历:遍历该DOM节点下的子节点,以便进行进一步操作; c添加:在该DOM节点下新增一个子节点,相当于动态增加了一个HTML节点; d删除:将该节点从HTML中删除,相当于删掉了该DOM节点的内容以及它包含的所有子节点。
ID在HTML文档中是唯一的,所以document.getElementById()可以直接定位唯一的一个DOM节点。document.getElementsByTagName()和document.getElementsByClassName()总是返回一组DOM节点。要精确地选择DOM,可以先定位父节点,再从父节点开始选择,以缩小范围。
第二种方法是使用querySelector()和querySelectorAll().
a.一种是修改innerHTML属性,这个方式非常强大,不但可以修改一个DOM节点的文本内容,还可以直接通过HTML片段修改DOM节点内部的子树;
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置文本为abc: p.innerHTML = 'ABC'; // <p id="p-id">ABC</p> // 设置HTML: p.innerHTML = 'ABC <span style="color:red">RED</span> XYZ'; // <p>...</p>的内部结构已修改
第二种是修改innerText或textContent属性,这样可以自动对字符串进行HTML编码,保证无法设置任何HTML标签.两者的区别在于读取属性时,innerText不返回隐藏元素的文本,而textContent返回所有文本。
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置文本: p.innerText = '<script>alert("Hi")</script>'; // HTML被自动编码,无法设置一个<script>节点: // <p id="p-id"><script>alert("Hi")</script></p>
修改CSS也是经常需要的操作。DOM节点的style属性对应所有的CSS,可以直接获取或设置。因为CSS允许font-size这样的名称,但它并非JavaScript有效的属性名,所以需要在JavaScript中改写为驼峰式命名fontSize:
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置CSS: p.style.color = '#ff0000'; p.style.fontSize = '20px'; p.style.paddingTop = '2em';
b.插入dom元素
var d = document.createElement('style'); d.setAttribute('type', 'text/css'); d.innerHTML = 'p { color: red }'; document.getElementsByTagName('head')[0].appendChild(d);
<!-- HTML结构 --> <ol id="test-list"> <li class="lang">Scheme</li> <li class="lang">JavaScript</li> <li class="lang">Python</li> <li class="lang">Ruby</li> <li class="lang">Haskell</li> </ol> 按字符串顺序重新排序DOM节点: var list = document.querySelector("#test-list"); var arr = list.innerHTML.match(/(<.+?>)(.+?)(<.+?>)/g); list.innerHTML=arr.sort().join("");
d. 要删除一个节点,首先要获得该节点本身以及它的父节点,然后,调用父节点的removeChild把自己删掉.
删除后的节点虽然不在文档树中了,但其实它还在内存中,可以随时再次被添加到别的位置。
你遍历一个父节点的子节点并进行删除操作时,要注意,children属性是一个只读属性,并且它在子节点变化时会实时更新.
相关文章推荐
- Javascript入门学习第七篇 js dom实例操作第1/2页
- Javascript入门学习第六篇 js DOM编程第1/2页
- 学习百度UEeditor之domUtils.js
- java学习--js--dom
- JS学习专辑(3)- DOM
- WEB程序员学习JS快速指南 --DOM
- js学习小结(八)2014.5.6(DOM节点,DOM操作技术)
- js DOM的学习笔记
- js基础学习第二天(关于DOM和BOM)二
- D3.js学习笔记(一)——DOM上的数据绑定
- Javascript入门学习第七篇 js dom实例操作第1/2页
- js学习笔记(十三)DOM文档对象模型
- 一个学习html(dom),js,css,xml等所有web技术的好网站
- js DOM的学习笔记
- js与dom操作学习2
- Javascript入门学习第六篇 js DOM编程第1/2页
- Prototype使用学习手册指南之dom.js
- 学习笔记---Javascript - DOM 及 简版JS二级联动
- js dom操作学习笔记
- D3.js学习笔记(二)——使用绑定在DOM上的数据