Javascript 添加虚拟标记的变通方法<;td>;使用Jquery

Javascript 添加虚拟标记的变通方法<;td>;使用Jquery,javascript,jquery,html,Javascript,Jquery,Html,我正在使用Jquery创建我需要的html模板,这些模板将具有一些特殊的格式 但是,我试图在标记中的周围添加一个虚拟标记 大概是这样的: var x='<vt><td>content here</td></vt>'; $(elem).find('tr').html(x); var x='content here'; $(elem).find('tr').html(x); 不幸的是,结果是 <tr> <vt></

我正在使用Jquery创建我需要的html模板,这些模板将具有一些特殊的格式

但是,我试图在
标记中的
周围添加一个虚拟标记

大概是这样的:

var x='<vt><td>content here</td></vt>';
$(elem).find('tr').html(x);  
var x='content here';
$(elem).find('tr').html(x);
不幸的是,结果是

<tr>
<vt></vt>
<td>content here</td>
</tr>

满足于此
DOM编译器可能会强制Jquery将元素转换为某种正确的格式。是否有解决方法?

根据:

4.9.9 td元素

可以使用此元素的上下文:

作为tr元素的子元素

请注意,这意味着
td
标记不能是
vt
标记的子元素

潜在的解决方法是将您的
vt
标记放在
td
元素中,直接使用
td
元素,或者将
div
元素与CSS一起使用
display:table
/
table row
/
table cell
,而不是
table
/
tr
/
td
元素。

根据:

4.9.9 td元素

可以使用此元素的上下文:

作为tr元素的子元素

请注意,这意味着
td
标记不能是
vt
标记的子元素


潜在的解决方法是将您的
vt
标记放在
td
元素中,直接使用
td
元素,或者将
div
元素与CSS
display:table
/
table row
/
table cell
一起使用,而不是
table
/
tr
/
td
元素。

我认为您的直觉是正确的,浏览器的DOM编译器能够“修复”损坏的标记。我知道Chrome是这样运行的。HTML规范说
只允许父元素是
元素(),而
只允许子元素是
元素()。由于jQuery驻留在浏览器中,因此它将使用的DOM解析器将遵循规范……您可以尝试将其解析为XML,它将起作用:
$($.parseXML('content here')).children()
这些标记的用例是什么?如果没有更高层次的关于需要完成什么的概述,很难提出解决方法。我认为您的直觉是正确的,而且浏览器的DOM编译器能够“修复”损坏的标记。我知道Chrome是这样运行的。HTML规范说
只允许父元素是
元素(),而
只允许子元素是
元素()。由于jQuery驻留在浏览器中,因此它将使用的DOM解析器将遵循规范……您可以尝试将其解析为XML,它将起作用:
$($.parseXML('content here')).children()
这些标记的用例是什么?如果没有对需要完成的工作进行更高层次的概述,很难提出解决办法