今日、同僚から
jQuery のフィルタリングについて相談を受けました。彼は、Easy CHM の UNREGISERED バージョンで作成された jQuery1.7 のドキュメントを調べたところ、その命令がフィルタリングされすぎて正常に実行できないことがわかりました。ドキュメント 一部のコンテンツには学習者を誤解させるいくつかのバグがあります。同時に、このフィルターの調査を通じて、これまで注目していなかった HTML の p 要素の問題を発見しました。 Easy CHMのUNREGISERED版で作成されたjQuery1.7を見てください。 説明
子要素のうちolを含まない要素を保持します。
HTML コード:
<p>
<ol>
<li>Hello</li>
</ol>
</p>
<p>How are you?</p>
ログイン後にコピー
jQuery コード:
$("p").filter(function(index) { return $("ol", this).length == 0;//这里明显有错误的.这样也不可能成功的. });
ログイン後にコピー
結果:
[ <p>How are you?</p> ]
ログイン後にコピー
実際、これは正常に実行できません。エラーは $("ol", this).length == 0; です。 (this).has("ol").length==0 に変更しても問題ありませんが、新しい問題が発生します。それは、p 要素が他の要素をラップしているという問題です。そのようなコードを見てみましょう。 HTML 全体ではこれのみです。これらのコードの内容):
<p><div>I'm nest in p element.</div></p>
ログイン後にコピー
次に、jQuery を使用して、この HTML の p 要素を取得します。
alert($("p").length);
ログイン後にコピー
p は 1 つだけなので、返される結果は 1 であると期待する必要があります。
Chr
ome.Firefox.Opera.Safari.IE.すべて2に戻ります
なぜですか?
私より慎重で、私ほどずぼらではない多くの人がその理由を知っているはずです。この種の問題は私にとって非常に重要です。P 要素にはブロックレベルの要素 (P 自体を含む) を含めることはできません。ブロックレベルの要素 (P 自体を含む) を含めることはできません。
以上がhtml: P 要素をランダムにネストしないでくださいの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。