我正在获取 en 元素的子节点,我想检查标签是否真的可以包含文本。例如:
<br />, <img />
应该返回 false 和
<span></span>, <div></div>, <li></li>
应该返回真。谢谢!
最佳答案
不幸的是,没有办法检测代码中标签是如何编写的,因为当 JavaScript 运行时,HTML 代码已经被解析为 DOM 对象。
但是,您的问题似乎更多地是关于特定元素类型是否可以包含文本。这个简单的测试将为您提供每种元素类型的答案:
function canElementContainText(tagname) {
try {
var e = document.createElement(tagname);
return e.outerHTML.indexOf("/") != -1;
} catch (ex) {
return false;
}
}
例如 canElementContainText("div")
返回 true
而 canElementContainText("img")
返回 false
.
然后您可以将任何元素的 tagName
属性传递给此函数以对其进行测试。
var result = canElementContainText(myElement.tagName);
关于javascript - 使用带有 JavaScript 的离散标记检查元素是否关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22046163/