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 ...
随机推荐
- java的各种使用小知识点总结。
9,重写Arrays.sort public int getHeight(int[][] actors, int n) { // write code here if (null == actors ...
- html5 canvas-变幻函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js算数优先级
.fullwidth-table { background: white } .fullwidth-table>th { background: #f50 } 优先级 运算类型 关联性 运算符 ...
- VS2013 密钥 – 所有版本
Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio Premium 2013 KEY(密钥) ...
- VMWARE修改CPUID
在cmd shell下执行wmic cpu get ProcessorId命令,可是查看机器的cpuID,但这个命令显示的只是2组ID,实际CPUID,有4组 通过更改虚拟机配置文件.vmx可是实现任 ...
- vuex 使用笔记
1. 在store.js中 储存数据状态 02. 在action.js中分发行为 03. 在页面中获取并使用状态
- JavaScript 学习笔记——cssText
平常编写代码,更改一个元素样式的时候,自己都是用 obj.style.width = "200px"; obj.style.position = "absolute&qu ...
- 【笔记】mysql两条数据的某个属性值互换
update groupuser as g1 join groupuser as g2 on (g1.user_id=1 and g2.user_id = 2) or(g1.user_id = 2 a ...
- windows
1.拷贝远程文件 net use \\10.130.80.62\ipc$ 密码 /user:用户名 xcopy "\\10.130.80.62\G$\yt\apache-tomcat-7.0 ...
- Power服务器中KVM克隆新虚拟机
查看当前所有虚拟机:virsh list --all 克隆新虚拟机:virt-clone -o guest01 -n guest02 -f /var/lib/libvirt/images/guest ...