是否有一种可移植的方法来检查某个元素是否可以接受并显示childNodes,除了检查tagName metadata
或类似内容?我需要实现某种d& d并且我想将移动的节点插入最近的switch(node.tagName)
位置(拖动节点已经被丢弃)。但是,据我所知,在document.elementFromPoint
中插入一个元素是没有意义的,所以在这种情况下我需要<img>
这个img的parentNode。
当然,可以检查标签列表,但也许有更便携和简单的解决方案?
谢谢
答案 0 :(得分:5)
不,我不认为有内置功能来检查某个标签是否为a void one。它是HTML的一个非常随意的决定,它没有DOM属性。 (在XML文档中,理论上每个元素都有子元素。)
所以检查官方名单确实是要走的路。对于HTML4,请参阅Which HTML tags have no content,对于HTML5,请参阅list of void elements in the spec:
area, base, br, col, embed, hr, img, input, keygen, link, menuitem, meta, param, source, track, wbr
答案 1 :(得分:1)
您可以使用this answer中的方法(问题和答案不是我的)。它回答了不同的问题,但可能仍然有用。 我在这里粘贴了接受的答案,虽然这个问题还有其他答案,但对你有用。 这是检查元素是否可以包含文本
function canElementContainText(tagname) {
try {
var e = document.createElement(tagname);
return e.outerHTML.indexOf("/") != -1;
} catch (ex) {
return false;
}
}
用法:
var result = canElementContainText(myElement.tagName);