<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
/*
节点包括(回车 换行 tab键 空格 字符)
*/
window.onload = function(){
var oDiv = document.getElementById("div1")
alert(oDiv.childNodes.length) //5
/*
【问题】如何将空白节点取出。
【注】识别出空白节点。
/^\s+$/.test()
使用左侧的正则去进行验证,如果是空白节点,返回true,
否则返回false
*/
alert(/^\s+$/.test(" ")) //true
alert(/^\s+$/.test("1 ")) //false
alert(oDiv.childNodes.length) //5
alert(oDiv.childNodes[0].nodeType) //3 文本属性
var nodes = removeSpaceNode(oDiv.childNodes)
alert(nodes.length) //3
alert(nodes[0].nodeType) //1 元素节点
/*
使用firstChild lastChild
必须从父节点上删除空白节点
*/
removeSpaceNode2(oDiv)
alert(oDiv.childNodes.length) //3
alert(oDiv.firstChild.nodeName) //EM
/*【注】删除数组元素的时候,必须倒序删除
因为正序删除,后面的元素会前移,使其跳过删除
3 4 5 (5 5) 4 3
*/
}
//删除空白节点
function removeSpaceNode(nodes){
var result = []
for(var i = 0; i < nodes.length; i++){
//判断是否是空白节点
if(nodes[i].nodeType == 3 && /^\s+$/.test(nodes[i].nodeValue)){
continue
}
result.push(nodes[i])
}
return result
}
//父节点上删除空白节点
function removeSpaceNode2(parent){
var nodes = parent.childNodes;
for(var i = nodes.length - 1; i >= 0; i--){
if(nodes[i].nodeType == 3 && /^\s+$/.test(nodes[i].nodeValue)){
//删除该节点
parent.removeChild(nodes[i])
}
}
}
</script>
</head>
<body>
<div id="div1">
<em>斜体</em>
文本内容
<strong>粗体</strong>
</div>
</body>
</html>
65 删除空白节点
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...