Javascript 添加虚拟标记的变通方法<;td>;使用Jquery
我正在使用Jquery创建我需要的html模板,这些模板将具有一些特殊的格式 但是,我试图在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></
标记中的
周围添加一个虚拟标记
大概是这样的:
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
元素与CSSdisplay: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()
这些标记的用例是什么?如果没有对需要完成的工作进行更高层次的概述,很难提出解决办法