当表存在时隐藏不工作

时间:2013-07-10 15:35:57

标签: jquery html html-table hide

我有一个网站,其中有一个包含大量数据的表格,在页面的头部我有以下代码: -

$(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();

但这里没有骰子......

1 个答案:

答案 0 :(得分:4)

这是因为你有一个荣耀的HTML。

<p>标记内部不能包含其他块,它是具有块属性的文本标记。一旦broswer在<p>内悬停一个块标记,它会自动关闭<p>并填充新标记。

如果您在此处检查dom:http://jsfiddle.net/pqJTZ/,您会看到<p>为空。

解决方案是改为使用<div>

This answer为您提供了良好的链接和正确的解释。