JS 中对象和DOM
来源:互联网 发布:淘宝皇冠账号多少钱 编辑:程序博客网 时间:2024/06/08 02:27
基本概念
JavaScript 可以将对象、属性和方法组合在一起构建出相应的程序;也可以看作是由节点组成的树结构(这篇博客的由来)。
如果一个节点包含html 元素,那么它就称为元素节点;
否则,它被称为文本节点;
元素节点也可以包含文本节点。
添加节点
给出一个示例:
html代码:
<!DCCTYPE html><html> <head> <title>Adding Nodes</title> </head> <body> <form action ="#"> <p><textarea id="textarea" rows="5" cols="30"></textarea></p> <input type="submit" value="Add some text to the page"> </form> <script src="addNode.js"></script> </body></html>
JS代码:
window.onload = initAll;function initAll(){ document.getElementsByTagName("form")[0].onsubmit = addNode;}function addNode(){ var inText = document.getElementById("textarea").value; //获取内容 var newText = document.createTextNode(inText); //创建包含内容的文本节点 var newGraf = document.createElement("p"); //创建元素节点 newGraf.appendChild(newText); //文本节点附加到元素节点 var docBody= document.getElementsByTagName("body")[0]; docBody.appendChild(newGraf); //元素节点附加到bosy主体上 return false;}
我们从JS 中可以看到,节点对象的操作类似数结构的操作。body 是大多数元素的节点的父节点,而元素节点是文本节点的父节点。
创建文本节点的方法是createTextNode();
创建元素节点的方法是createElement();
子节点附加到父节点的方法是:appendChild();
删除节点
function delNode(){ var allGrafs = document.getElementsByTagName("p"); //获取所有元素节点P if(allGrafs.length>1) { var lastGraf = allGrafs.item(allGrafs.length-1); //获取最后一个元素节点p var docBody = document.getElementsByTagName("body")[0]; docBody.removeChild(lastGraf); //删除最后一个元素结点 } else { alert("Nothing to remove"); } return false;}
删除节点的方法removeChild();
这个删除节点比较简单,表示删除最后一个元素节点,那是否只能删除最后一个节点呢?答案是否定的。
删除特定的节点
我们模拟一下这样的场景:现在页面上有多个“p”节点,然后每个”p”节点我们用一个“select”来进行标号选择,于是就出现了下述代码:
function delNode(){ var grafChoice = document.getElementById("grafCout").selectedIndex; //从grafCout 中读出段落号。并将其存储在grafChoice中。 var allGrafs = nodeChgArea.getElementsByTagName("p"); // allGrafs 变量设置为nodeChgArea中的所有段落 var olsGraf = allGrafs.item(grafChoice); //将要删除的段落存储在oldGraf 中。 nodeChgArea.removeChild(olsGraf);}
插入节点
function insertNode(){ var grafChoice = document.getElementById("grafCout").selectedIndex; var inText = document.getElementById("textarea").value; //获取内容 var newText = document.createTextNode(inText); //涵盖内容的文本节点 var newGraf = document.createElement("p"); //创建元素节点p newGraf.appendChild(newText); //元素节点带着文本节点 var allGrafs = nodeChgArea.getElementsByTagName("p"); //收集区域中的所有p标签 var oldGraf = allGrafs.item(grafChoice); //目标位置,我们将在这个段落前面插入新段落。 nodeChgArea.insertBefore(newGraf,oldGraf); }
简单思路就是:插入节点就是有个目标节点,有个新节点,就是将新节点插入到目标节点之前。
插入节点的方法是insertBefore(新节点,旧节点),仅此而已。
替换节点
function replaceNode(){ var grafChoice = document.getElementById("grafCout").selectedIndex; //var inText = document.getElementById("textarea").value; //获取内容 var inText = "jvandpfvhpdfbnpdhbsnhpbdbfnadfsbhtrbisnfgsbnkxcn zp"; //获取内容 var newText = document.createTextNode(inText); //涵盖内容的文本节点 var newGraf = document.createElement("p"); //创建元素节点p newGraf.appendChild(newText); //元素节点带着文本节点 var allGrafs = nodeChgArea.getElementsByTagName("p"); //收集区域中的所有p标签 var oldGraf = allGrafs.item(grafChoice); //目标位置,我们将在这个段落前面插入新段落。 nodeChgArea.replaceChild(newGraf,oldGraf);}
简单思路就是:替换节点就是有个目标节点,有个新节点,就是新节点替换目标节点。
插入节点的方法是replaceChild(新节点,旧节点),仅此而已。
以上几乎涵盖了对象节点的基本操作,代码已上传http://download.csdn.net/my/uploads/1。当然,还有其他的书写形式,比如:用对象字面值来编写相应的代码,类似于“json”格式,(太难了),感觉从编写过程式函数转换,思维有点跟不上啊~~~
继续努力吧!欢迎指正
- JS 中对象和DOM
- JS面向对象和DOM
- 00 JS-DOM之--什么是DOM和DOM对象
- js的XMLHttpRequest对象和DOM对象
- js中dom的document对象
- Js中Dom对象,控制Html元素
- js 向dom对象中存储变量
- JS中DOM对象常用基础知识
- DOM对象和内置对象(中)
- Dom对象,js对象和jquery对象的区别
- DOM对象和js对象以及jQuery对象的区别
- jquery对象和js的dom对象之间的转换
- Jquery 对象和Dom对象(js) 的异同点
- js中的Dom对象和jQuery对象的互相转化
- js的dom对象
- js操作dom对象
- js-访问DOM对象
- js的dom对象
- 【录教程必备】推荐几款屏幕录制工具(可录制GIF)
- Java中的main()方法详解
- new创建 一维数组、二维数组、三维数组、四维数组...
- docker简单操作,以及运行gpu
- 240 Search a 2D Matrix II
- JS 中对象和DOM
- Retrofit的使用
- intptr_t 其实不是指针类型 .
- 003
- PHP 中 9 大缓存技术总结
- 图像拼接
- Hibernate一对多及多对一关联映射(三)
- jsp内置对象session
- single-number-ii