汇盛国际娱乐:JS DOM 操作实现代码

时间: 作者:技照

  

[JS,DOM]JS DOM 操作实现代码

  简单的表格:  
代码如下:
  
  
  
  
  
  
  
  
  
  
经测试:  
代码如下:
  
var td= document.getElementById("TEST");  
alert(td.childNodes.length);结果为4  
  
百思不得其解,阅读相关资料后,发现原来JS中,空格也是作为一个文本节点,而两个input元素后面都有空格  
所以都作为一个文本节点,所以结果为4  
删除空格后结果为2  
为了处理里面的空格节点,用以下函数来处理  
代码如下:
  
function cleanWhitespace(element)  
{  
for(var i=0; i{  
var node = element.childNodes[i];  
if(node.nodeType == 3 && !/\S/.test(node.nodeValue))  
{  
node.parentNode.removeChild(node);  
}  
}  
}  
  
处理结点cleanWhitespace(document.getElementById("TEST"))后,OK,解决  
另附:  
DOM基本方法  
一.直接引用结点  
1.document.getElementById(id);  
--在文档里面通过id来找结点  
2.document.getElementByTagName(tagName);  
--返回一个数组,包含对这些结点的引用  
--如:document.getElementByTagName("span");将返回所有类型为span的结点  
二.间接引用结点  
3.element.childNodes  
--返回element的所有子结点,可以用element.childNodes[i]的方式来调用  
--element.firstChild=element.childNodes[0];  
--element.lastChild=element.childNodes[element.childNonts.length-1];  
4.element.parentNode  
--引用父结点  
5.element.nextSibling; //引用下一个兄弟结点  
element.previousSibling; //引用上一个兄弟结点  
三.获得结点信息  
6.nodeName属性获得结点名称  
--对于元素结点返回的是标记名称,如:返回的是"a"  
--对于属性结点返回的是属性名称,如:class="test" 返回的是test  
--对于文本结点返回的是文本的内容  
7.nodeType返回结点的类型  
--元素结点返回1  
--属性结点返回2  
--文本结点返回3  
8.nodeValue返回结点的值  
--元素结点返回null  
--属性结点返回undefined  
--文本结点返回文本内容  
9.hasChildNodes()判断是否有子结点  
10.tagName属性返回元素的标记名称  
--这个属性只有元素结点才有,等同于元素结点的nodeName属性  
四.处理属性结点  
11.每个属性结点都是元素结点的一个属性,可以通过(元素结点.属性名称)访问  
12.利用setAttribute()方法给元素结点添加属性  
--elementNode.setAttribute(attributeName,attributeValue);  
--attributeName为属性的名称,attributeValue为属性的值  
13.使用getAttribute()方法获得属性值  
--elementNode.getAttribute(attributeName);  
五.处理文本结点  
14.innerHTML和innerText属性,这两个方法相信大家都很熟悉,不介绍了,值得注意的是无论是ie还是firefox都容易把空格、换行、制表符等当成文本结点。所有一般通过element.childNodes[i]引用文本结点的时候,一般要处理:  
代码如下:
  
  
function 汇盛国际开户 cleanWhitespace(element)  
{  
for(var i=0; i{  
var node = element.childNodes[i];  
if(node.nodeType == 3 && !/\S/.test(node.nodeValue))  
{  
node.parentNode.removeChild(node);  
}  
}  
}  
  
  
六.改变文档的层次结构  
15.document.createElement()方法创建元素结点  
--如:document.createElement("Span");  
16.document.createTextNode()方法创建文本结点  
--如:document.createTextNode(" "); //注:他不会通过html编码,也就是说这里创建的不是空格,而是字符串  
17.使用appendChild()方法添加结点  
--parentElement.appendChild(childElement);  
18.使用insertBefore()方法插入子节点  
--parentNode.insertBefore(newNode,referenceNode);  
--newNode为插入的节点,referenceNode为将插入的节点插入到这之前  
19.使用replaceChild方法取代子结点  
--parentNode.replaceChild(newNode,oldNode);  
--注:oldNode必须是parentNode的子结点,  
20.使用cloneNode方法复制结点  
--node.cloneNode(includeChildren);  
--includeChildren为bool,表示是否复制其子结点  
21.使用removeChild方法删除子结点   (责任编辑:admin)

推荐图片Related

相关文章Related

查看更多热门新闻


首页 | 特效插件 | 常用代码 | 样式素材 | 脚本代码 | css特效

Copyright © 2017-2018 汇盛国际 版权所有

系统要求:本站自适应各终端浏览器分辨率

请使用Google、Firefox、IE9、百度浏览器登录网站

网站地图 | RSS订阅 | 汇盛国际平台