如何获取HTML代码?Jquery html()和outhtml prop不是我想要的

时间:2017-11-28 03:04:46

标签: javascript jquery html

我的代码是:

 <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道具,但它仍然不起作用。如何解决?

1 个答案:

答案 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);

希望这有帮助! :)