我的代码是:
<div id="TemplateMode" style="display: none;">
<tr class='trStudent'>
<td><input name="aa" type="text" /></td>
<td><input name="bb" type="text"/></td>
</tr>
</div>
现在我想得到这样的模板内容字符串:
<tr class='trStudent'>
<td><input name="aa" type="text" /></td>
<td><input name="bb" type="text"/></td>
<td><input name="cc" type="text"/></td>
</tr>
我尝试使用$('#TemplateMode')。html(),但似乎结果是
<input name="aa" type="text" />
<input name="bb" type="text"/>
<input name="c" type="text"/>
我尝试使用outhtml道具,但它仍然不起作用。如何解决?
答案 0 :(得分:1)
您可以使用原始JavaScript的 Element.innerHTML
:
console.log(document.getElementById('TemplateMode').innerHTML);
<div id="TemplateMode" style="display: none;">
<tr class='trStudent'>
<td><input name="aa" type="text" /></td>
<td><input name="bb" type="text" /></td>
</tr>
</div>
但是,请注意<tr>
元素不呈现。这是因为您有无效标记,您可以通过 W3C Validation Service 进行验证。
请注意,<tr>
元素为 not a valid child of <div>
; <tr>
唯一有效的父母是<thead>
,<tbody>
和<tfoot>
(除了罕见的有效父级<table>
)。
table > tr
特别有趣的是,将推断缺少的<tbody>
,并自动将其添加到DOM中。
将<div>
元素转换为<table>
(生成有效标记)会显示<tr>
元素的成功输出,并显示支持{{1}的自动创建}:
<tbody>
console.log(document.getElementById('TemplateMode').innerHTML);
希望这有帮助! :)