如何使用JavaScript创建自闭合HTML标签?
关于自定义元素生成自闭合标签的问题
首先得明确核心事实:HTML规范里不存在自定义元素的自闭合语法,只有<img>、<br>这类原生空元素才会被浏览器识别为自闭合形式。你用document.createElement创建的自定义元素,哪怕没有内容,最终浏览器都会渲染成成对标签,这是DOM的固有处理逻辑,和创建元素的方式无关。
如果只是想得到字符串形式的自闭合标签(比如用于输出XML内容,而非直接插入DOM),可以手动拼接字符串:
const root = document.getElementById('root'); // 手动拼接自闭合标签字符串 const singleTagStr = '<single name="test"/>'; // 插入到DOM中,但浏览器解析后仍会变成成对标签 root.insertAdjacentHTML('beforeend', singleTagStr);
但要注意:哪怕你插入自闭合形式的字符串,浏览器在解析HTML时依然会把它转换为<single name="test"></single>,因为HTML不支持自定义元素的自闭合写法。只有在XML或XHTML文档环境下,自闭合标签才会被保留,但这种场景现在已经非常少见了。
内容的提问来源于stack exchange,提问作者Александр Аверьянов
相关产品推荐
相关产品推荐

