所以我有以下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而不改变它,即使它是“坏”,我如何获取内容?
答案 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 强>
它没有记录的原因是因为浏览器看到了一些无效的tr
和td
标记,并删除了这些标记,因为它们只能位于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