javascript - 使用带有 JavaScript 的离散标记检查元素是否关闭

标签 javascript html dom nodes

我正在获取 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") 返回 truecanElementContainText("img") 返回 false .

然后您可以将任何元素的 tagName 属性传递给此函数以对其进行测试。

var result = canElementContainText(myElement.tagName);

关于javascript - 使用带有 JavaScript 的离散标记检查元素是否关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22046163/

相关文章:

javascript - 将 markdown 文件从 http 目录加载到 javascript 字符串中

JavaScript 单击 iframe 内的 div

javascript - 单击选项卡 Angular 2 时的触发方法

javascript - 如何通过 Protractor 处理Firefox中的下载文件保存对话框

javascript - 使用 Jest 在自定义 Ajax 函数中模拟响应值

javascript - Jquery在不使用split的情况下在div内的x个单词后插入html

php - 使用 AJAX 插入后,HTML 内容不应用 CSS

javascript - 单击 html 中的下载链接后重定向

javascript - 在javascript中通过类名选择元素

javascript - HTML DOM 和 Javascript : Uncaught TypeError: Cannot read property 'appendChild' of undefined