1

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

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

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

4

1 回答 1

4

这是因为您的 HTML 无效。

标签内<p>不能包含其他块,它是具有块属性的文本标签。一旦浏览器运行将块标签悬停在 内<p>,它会自动关闭<p>并打开新标签。

如果你在这里检查 dom:http: //jsfiddle.net/pqJTZ/,你会看到它<p>是空的。

解决方案是使用 a<div>代替。

这个答案给你很好的链接和正确的解释。

于 2013-07-10T15:44:15.423 回答