1

私はこの線に出くわしました、そしてそれが何をしているのか推測できますがlength > 0、子供たちにあるべきではありませんか、それとも常に戻る/ブール値として使用できますか?

または、jQueryの子はブール値を返しますか、それともこの人は返された子の存在に依存していますか?

append(($(this).children()) ? '<div class="vAlignWrapper" style="overflow: hidden;">' + $(this).html() + '</div>' : '&nbsp;').

私は大きなJSファイルをデバッグしようとしており、各行が想定どおりに機能することを確認しようとしています。

4

2 に答える 2

7

ほとんどのjQueryメソッドと同様にchildren() 、チェーン用のjQueryオブジェクトを返します。子がない場合は、空のjQueryオブジェクトを返します。

子が存在するかどうかを知りたい場合は、.lengthプロパティを使用する必要があります。このプロパティは、存在する場合はゼロより大きい数値を返し、存在しない場合はゼロを返します。

つまり、はい。元のコードが正しくなかったようです。ブール値としてのテスト$(this).children()は常に考慮されtrueます。

于 2012-04-13T17:44:29.147 に答える
1

jQuerys .children()関数はjQueryオブジェクトを返します。これは常に「真実の」値になります。

子供がいるかどうかを確認したい場合は、以下を使用する必要があります。

... ($(this).children().length > 0) ? ...

または、不可解なコードを書くのが好きなら、これは同じことを達成するでしょう:

... $(this).children().length ? ...
于 2012-04-13T17:45:49.297 に答える