Javascript jquery中的svg use标记不返回自动关闭
考虑以下html代码:Javascript jquery中的svg use标记不返回自动关闭,javascript,jquery,html,svg,Javascript,Jquery,Html,Svg,考虑以下html代码: <a id="generic" href="#"> <svg class=""><use xlink:href="#icon-menu" /></svg> </a> 我希望警报的输出是,换句话说,是一个,带有我使用的自动关闭标记 但是,js不会返回自动关闭的标记,而是将其转换为关闭的标记 这是输出: 它忽略我的自动关闭标记并将其转换为关闭标记的原因是什么?浏览器在内部将HTML解析为DOM表单,并且不记
<a id="generic" href="#">
<svg class=""><use xlink:href="#icon-menu" /></svg>
</a>
我希望警报的输出是
,换句话说,是一个
,带有我使用的自动关闭
标记
但是,js不会返回自动关闭的
标记,而是将其转换为关闭的
标记
这是输出:
它忽略我的自动关闭标记并将其转换为关闭标记的原因是什么?浏览器在内部将HTML解析为DOM表单,并且不记录您使用的是结束标记还是自动关闭标记。自动关闭标签只是为了方便作者。您可以将其视为编译代码
当使用
html()
或DOM方法.innerHTML()
再次序列化内部DOM表示时,浏览器只输出标准长表单。这些表单在语义上完全相同。为什么要担心呢?这只是序列化过程的产物。从语义上讲,我并不担心。除非我在js中检查if语句以验证该元素的.html内容时注意到了“问题”。我使用self-closing标记进行检查,但它没有通过检查,尽管正如您所说,它们在语义上是正确的。
$('#generic').on('click', function() {
alert($(this).html());
});