1

大量のデータを含むテーブルがある Web サイトを持っています。ページの先頭に次のコードがあります: -

$(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>られ、新しいタグが開きます。

http://jsfiddle.net/pqJTZ/の dom を調べると、<p>空であることがわかります。

<div>解決策は、代わりにa を使用することです。

この回答は、適切なリンクと適切な説明を提供します。

于 2013-07-10T15:44:15.423 に答える