jquery没有拿起HTML

时间:2013-02-22 13:24:31

标签: javascript jquery html dom tags

所以我有以下HTML

<div class="tmpl" id="query_tmpl">
<tr>
    <td><a href="#" class="group"></a></td>
    <td class="primary_email"></td>
</tr>
</div>

以及以下JS:

 console.log($('#query_tmpl').html());

由于某种原因,这只记录'a'标签。 (例如:http://jsfiddle.net/L8RQq/

为什么会发生这种情况?如何绕过它以便我可以正确地拿起tr / td?我正在使用jQuery 1.9.2,如果这有任何区别。

更新: 是的,标记是“坏的HTML”,但这个问题的重点是如何解决这个问题。使用HTML而不改变它,即使它是“坏”,我如何获取内容?

3 个答案:

答案 0 :(得分:1)

table周围没有tr个标签。试试这个:

<div class="tmpl" id="query_tmpl">
    <table>
        <tr>
            <td><a href="#" class="group"></a></td>
            <td class="primary_email"></td>
        </tr>
    </table>
</div>

<强> This will log the div's contents properly

它没有记录的原因是因为浏览器看到了一些无效的trtd标记,并删除了这些标记,因为它们只能位于table中,只有a

如果您无法更改标记,请告知编写该标记的人/公司进行修复。这是无效的HTML。

答案 1 :(得分:0)

像这样做

    <table class="tmpl" id="query_tmpl">
         <tr>
            <td><a href="#" class="group"></a></td>
            <td class="primary_email"></td>
         </tr>
    </table>

然后它肯定会正常工作

答案 2 :(得分:0)

如果你想获取tr或td,你可以使用children([selector])等{c}操作函数,其中selector最终是class