javascript获取childNodes详情,删除空节点
每个node都包含有nodeType属性。
nodeType取值:
元素节点:1
属性节点:2
文本节点:3
<html>
<head>
<title></title>
<script src="../js/jquery-1.12.3.min.js"></script>
</head>
<body>
<table>
<tr>
<td>值1</td>
<td>值2</td>
<td>值3</td>
</tr>
<tr class="for-tr">
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
</tr>
<tr class="for-tr">
<td>ddd</td>
<td>eee</td>
<td>fff</td>
</tr>
<tr class="for-tr">
<td>ggg</td>
<td>hhh</td>
<td>kkk</td>
</tr>
<tr class="for-tr">
<td>lll</td>
<td>ppp</td>
<td>ooo</td>
</tr>
</table>
</body>
<script type="text/javascript">
var postArr = [];
for (var i = 0; i < document.getElementsByClassName('for-tr').length; i++) {//循环所有的tr
var subObj = {};
console.log(document.getElementsByClassName('for-tr')[i].childNodes);
// var subChild = delSpaceDom(document.getElementsByClassName('for-tr')[i]);
// subObj.name = subChild[0].childNodes[0].nodeValue;
// subObj.age = subChild[1].childNodes[0].nodeValue;
// subObj.sex = subChild[2].childNodes[0].nodeValue;
postArr.push(subObj);
};
console.log(postArr);
</script>
</html>
没有过滤掉空文本节点之前
打印出每个for-tr下的子元素节点,有七个节点,如图:

移除空文本节点之后的代码如下:
<html>
<head>
<title></title>
</head>
<body>
<table>
<tr>
<td>值1</td>
<td>值2</td>
<td>值3</td>
</tr>
<tr class="for-tr">
<td>aaa</td>
<td>bbb</td>
<td>ccc</td>
</tr>
<tr class="for-tr">
<td>ddd</td>
<td>eee</td>
<td>fff</td>
</tr>
<tr class="for-tr">
<td>ggg</td>
<td>hhh</td>
<td>kkk</td>
</tr>
<tr class="for-tr">
<td>lll</td>
<td>ppp</td>
<td>ooo</td>
</tr>
</table>
</body>
<script type="text/javascript">
var postArr = [];
for (var i = 0; i < document.getElementsByClassName('for-tr').length; i++) {//循环所有的tr
var subObj = {};
var subChild = delSpaceDom(document.getElementsByClassName('for-tr')[i]);
subObj.name = subChild[0].childNodes[0].nodeValue;
subObj.age = subChild[1].childNodes[0].nodeValue;
subObj.sex = subChild[2].childNodes[0].nodeValue;
postArr.push(subObj);
};
console.log(postArr);
function delSpaceDom(parentNode) {
var sub_child = parentNode.childNodes;
for (var i = 0; i < sub_child.length; i++) {
if(sub_child[i].nodeType == '3' && sub_child[i].nodeName == '#text' && !/\S/.test(sub_child[i].nodeValue)){//文本节点并且是空的文本节点时,将空文本节点删除
parentNode.removeChild(sub_child[i]);
}
}
return parentNode.childNodes;
}
</script>
</html>


javascript获取childNodes详情,删除空节点的更多相关文章
- javascript获取dom的下一个节点方法
需求说明: 获取当前节点左节点或者右节点(兄弟节点): css: <style type="text/css"> a:focus { outline: none; } ...
- javascript 获取下一个节点
下一个节点: nextElementSibling 上一个节点 previousElementSibling <div> <select onchange="alert(t ...
- JavaScript获取HTML DOM节点元素详解(转)
在Web运用程序特别是Web 2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要处理的疑问. 51CTO推荐阅读:JavaScript DOM文档 ...
- [转]Javascript removeChild()删除节点及删除子节点的方法(同样适用于jq)
Javascript removeChild()删除节点及删除子节点的方法 这篇文章主要介绍了Javascript removeChild()删除节点及删除子节点的方法的相关资料,需要的朋友可以参考下 ...
- javascript 获取HTML DOM父、子、临近节点
在Web应用程序特别是Web2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要解决的问题.令人欣慰的是,使用JavaScript获取节点的方法有很 ...
- html5中JavaScript删除全部节点
如果div里有这么些内容: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type ...
- javaScript获取文档中所有元素节点的个数
HTML+JS 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&qu ...
- Zookeeper命令行操作(常用命令;客户端连接;查看znode路径;创建节点;获取znode数据,查看节点内容,设置节点内容,删除节点;监听znode事件;telnet连接zookeeper)
8.1.常用命令 启动ZK服务 bin/zkServer.sh start 查看ZK服务状态 bin/zkServer.sh status 停止ZK服务 bin/zkServer.sh stop 重启 ...
- java:利用xpath删除xml中的空节点
原始xml内容: <data> <a> </a> <b>b1</b> <awb> <awbpre>123</a ...
随机推荐
- git clone出现的error: The requested URL returned error: 401 Unauthorized
error: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/.. ...
- secureCRT The remote system refused the connection.
转 http://blog.csdn.net/lifengxun20121019/article/details/13627757 我在实践远程登录工具SecureCRT的时候遇到了这个问题 Ubun ...
- 利用box-shadow实现伪边框透明到图片
前阵子突然看到了一个效果,一张图片,有一个边框,但是边框可以透明到图片.直接上图 贴代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tr ...
- Web干货存档
今天看了某乎,介绍了web一些基本东西,讲的很好,随手留下https://www.zhihu.com/question/22689579 web开发者文档,纯干货 https://develope ...
- python scipy学习-曲线拟合
根据某地每月的平均温度[17, 19, 21, 28, 33, 38, 37, 37, 31, 23, 19, 18]拟合温度函数. import numpy as np import matplot ...
- hibernate id 策略
@Id@GeneratedValue(generator = "paymentableGenerator")@GenericGenerator(name = "payme ...
- 浅谈HTTP中Get与Post的区别
引用自:http://www.cnblogs.com/hyddd/archive/2009/03/31/1426026.html Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET ...
- vs里根据json快速创建对应类的方法
有时候,我们在调用别人接口的时候,服务端返回了一个json格式的字符串,我们要获取json里面的数据的话一般有两种方式: 1.通过正则 2.反序列化成一个对象 第一种方式这里不再多说,主要说一下第二种 ...
- Mysql binlog 安全删除
简介: 如果你的 Mysql 搭建了主从同步 , 或者数据库开启了 log-bin 日志 , 那么随着时间的推移 , 你的数据库 data 目录下会产生大量的日志文件 shell > ll /u ...
- 20. Valid Parentheses
1.题目: Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if th ...