我有一个网站,其中有一个包含大量数据的表格,在页面的头部我有以下代码: -
$(function() {
$("td[colspan=3]").find("P").hide();
});
当我的主桌上有一个<P> test </P>
时,它正确地隐藏了这个(我有一个按钮然后显示这个,我知道它有效)。
但是,如果我在P表之间输入一个子表,那么
<td colspan="3">
<P>
<table>
<tr><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td></tr>
</table>
</P>
</td>
桌子没有隐藏......我错过了什么?我也试过
$("td[colspan=3]").find("P").find("table").hide();
但这里没有骰子......
答案 0 :(得分:4)
这是因为你有一个荣耀的HTML。
<p>
标记内部不能包含其他块,它是具有块属性的文本标记。一旦broswer在<p>
内悬停一个块标记,它会自动关闭<p>
并填充新标记。
如果您在此处检查dom:http://jsfiddle.net/pqJTZ/,您会看到<p>
为空。
解决方案是改为使用<div>
。
This answer为您提供了良好的链接和正确的解释。