0
<script type="text/javascript">
    $(document).ready(function(){
        console.log($('#list_table_template').html());
    });
</script>

<div id="list_table_template" style="display: none;">
    <table id="list_table" cellpadding="0" cellspacing="0">
        <p>123</p>
        <tr id="lt_header">
            <!--#lt_header#-->
        </tr>
        <!--#lt_listing#-->
        <tr id="lt_footer">
            <td colspan="5">Footer Placeholder</td>
        </tr>
    </table>
</div>

此代码未返回预期结果。

虽然我期待日志显示:

    <table id="list_table" cellpadding="0" cellspacing="0">
        <p>123</p>
        <tr id="lt_header">
            <!--#lt_header#-->
        </tr>
        <!--#lt_listing#-->
        <tr id="lt_footer">
            <td colspan="5">Footer Placeholder</td>
        </tr>
    </table>

但它给了我:

<p>123</p><table id="list_table" cellpadding="0" cellspacing="0">

    <tbody><tr id="lt_header">
        <!--#lt_header#-->
    </tr>
    <!--#lt_listing#-->
    <tr id="lt_footer">
        <td colspan="5">Footer Placeholder</td>
    </tr>
</tbody></table>

注意p标签乱了,跳到表格前面了。

4

2 回答 2

7

<th>除非段落位于or<td>标记内,否则不能将段落嵌套在表格内。它是无效的 HTML,因此您的浏览器将其重新定位到表格之外,而 jQuery 只能读取浏览器已解析的内容。

最好的解决方案可能是将 替换为pcaption这是有效的 HTML。但是,如果您希望段落出现在表格内,则需要先将其包装在<tr><td>...中</td></tr>

于 2012-09-20T18:16:04.087 回答
0

您的浏览器无法<p>解析<table>. 因此,它将被解析。

于 2012-09-24T18:24:40.883 回答