判断children[i].nodeType节点是否是一个非空文本节点
时间: 2023-12-27 21:02:34 浏览: 34
好的,我会根据你的要求回答你的问题。针对你的问题,判断节点是否是一个非空文本节点可以通过以下代码实现:
if (children[i].nodeType === Node.TEXT_NODE && children[i].textContent.trim() !== '') {
//当前节点是一个非空文本节点
} else {
//当前节点不是一个非空文本节点
}
其中,Node.TEXT_NODE 表示文本节点的类型,textContent 属性表示节点的文本内容,trim() 方法可以去掉文本内容前后的空格。
相关问题
把所有的this.app换成app,let apps = []; //root下可执行的app let app = MakeApp(); //遍历vdom结构,用来生成新dom let children = dom.childNodes; for (var i = 0; i < children.length; i++) { if (children[i].nodeType == 1) { if (isHTML(hildren[i].tagName)) { let app = MakeApp(); this.apps.push(app); } else { //从apps数组中找到有name属性为hildren[i].tagName的对象 let app_message; for (let i = 0; i < apps.length; i++) { if (apps[i].name === children[i].tagName) { app_message = apps[i]; break; } } let app = MakeApp(app_message); this.apps.push(app); } } else if (children[i].nodeType === Node.TEXT_NODE && children[i].textContent.trim() !== '') { //判断children[i].nodeType节点是否是一个非空文本节点 let app = MakeApp(); this.apps.push(app); } }
) { let app = MakeApp(); this.apps.push(app); } }
修改为:
let apps = []; //root下可执行的app
let app = MakeApp(); //遍历vdom结构,用来生成新dom
let children = dom.childNodes;
for (var i = 0; i < children.length; i++) {
if (children[i].nodeType == 1) {
if (isHTML(children[i].tagName)) {
let app = MakeApp();
apps.push(app);
} else {
//从apps数组中找到有name属性为children[i].tagName的对象
let app_message;
for (let j = 0; j < apps.length; j++) {
if (apps[j].name === children[i].tagName) {
app_message = apps[j];
break;
}
}
let app = MakeApp(app_message);
apps.push(app);
}
} else if (children[i].nodeType === Node.TEXT_NODE) {
let app = MakeApp();
apps.push(app);
}
}
注意,我已经将代码中的this.apps改为了apps。
children[i].nodeType各种含义
这个问题涉及编程中的DOM(文档对象模型),children[i].nodeType表示第i个子节点的类型,具体含义如下:
1. ELEMENT_NODE (1):表示一个元素节点
2. ATTRIBUTE_NODE (2):表示一个属性节点
3. TEXT_NODE (3):表示一个文本节点
4. CDATA_SECTION_NODE (4):表示一个 CDATA 节点
5. ENTITY_REFERENCE_NODE (5):表示一个实体引用节点
6. ENTITY_NODE (6):表示一个实体节点
7. PROCESSING_INSTRUCTION_NODE (7):表示一个处理指令节点
8. COMMENT_NODE (8):表示一个注释节点
9. DOCUMENT_NODE (9):表示一个文档节点
10. DOCUMENT_TYPE_NODE (10):表示一个文档类型节点
11. DOCUMENT_FRAGMENT_NODE (11):表示一个文档片段节点
12. NOTATION_NODE (12):表示一个注释节点
希望这个回答能够帮助到你。