Ood*_*Ood 8 html javascript dom nodes
我正在获取en元素的子节点,我想检查标签是否实际上可以包含文本.例如:
<br />, <img />
Run Code Online (Sandbox Code Playgroud)
应该返回false和
<span></span>, <div></div>, <li></li>
Run Code Online (Sandbox Code Playgroud)
应该回归真实.谢谢!
遗憾的是,无法检测代码中的标记是如何编写的,因为当JavaScript运行时,HTML代码已经被解析为DOM对象.
但是,您的问题似乎更多地是关于特定元素类型是否可以包含文本.这个简单的测试将为您提供每种元素类型的答案:
function canElementContainText(tagname) {
try {
var e = document.createElement(tagname);
return e.outerHTML.indexOf("/") != -1;
} catch (ex) {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
例如canElementContainText("div")返回true和canElementContainText("img")返回false.
然后,您可以将tagName任何元素的属性传递给此函数以进行测试.
var result = canElementContainText(myElement.tagName);
Run Code Online (Sandbox Code Playgroud)