Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery中的svg use标记不返回自动关闭_Javascript_Jquery_Html_Svg - Fatal编程技术网

Javascript jquery中的svg use标记不返回自动关闭

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表单,并且不记

考虑以下html代码:

<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());
});