使用JavaScript的离散标签检查元素是否关闭 [英] Check if an element is closed using a discrete tag with JavaScript

查看:161
本文介绍了使用JavaScript的离散标签检查元素是否关闭的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到了en元素的子节点,我想检查标签是否可以包含文本。例如:

I am getting the child nodes of en element and i want to check if the tags can actually contain text. For example:

<br />, <img />

应该返回false,

<span></span>, <div></div>, <li></li>

应该返回true。谢谢!

should return true. Thanks!

推荐答案

不幸的是,无法检测代码中如何写入代码,因为JavaScript运行时, HTML代码已被解析为DOM对象。

Unfortunately, there is no way to detect how a tag was written in the code, since when the JavaScript runs, the HTML code has already been parsed into DOM objects.

但是,您的问题似乎更多是关于特定元素类型是否可以包含文本。这个简单的测试将给你一个元素类型的答案:

However, your question seems to be more about whether a particular element type can contain text. This simple test will give you an answer per element type:

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 属性传递给这个函数来测试它。

You can then pass the tagName property of any element to this function to test it.

var result = canElementContainText(myElement.tagName);

这篇关于使用JavaScript的离散标签检查元素是否关闭的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆