0

所以我有以下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 并且不对其进行更改,即使内容“不好”,我如何才能获取内容?

4

3 回答 3

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>

这将正确记录 div 的内容

它没有记录的原因是浏览器看到一些无效trtd标签,并删除它们,因为它们只能在 a 中table,只留下a.

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

于 2013-02-22T13:27:01.553 回答
0

让它像这样

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

然后它肯定会正常工作

于 2013-02-22T13:27:59.833 回答
0

如果您想获取 tr 或 td,您可以使用 css 操作函数,例如children([selector])where selectoris finally aclass

于 2013-02-22T13:28:41.383 回答