0

私は次の設定をしています:

      <div id="whatever">
           <!-- Here some dynamic divs will be loaded -->
      </div>

「whateverdiv」の中に何も入っていないのはいつかを知る必要があります。キャッチは、私が何も言わないとき、ユーザーが何も見えない場合を意味するということです。したがって、div内の場合は次のようになります

      <div style="display: none">LOOOONG TEXT</div>

ロードされていると思います。

空白がいっぱいの場合も空です。ユーザーが何も表示されない場合は空です。

カバーできないケースが多すぎるため(高さ0のコンテンツ、表示なしのコンテンツ、空白スペース、タブ、非表示の入力など、状況によってはほとんどすべてがそこに読み込まれる可能性があります)、height属性を使用してコンテンツがあります(divはコンテンツに応じて拡張されます)。このアイデアはうまくいきましたが、今は別の問題があります。ディスプレイを追加する必要があります。ディスプレイがない場合もあります。これを行うと、高さは常に0として読み込まれます。divには10pxのパディングがあり、表示されていないときに表示したくないため、可視性を使用できません。だから私は正方形に戻ります...そのすべての場合にdivが空であるかどうかを確認するための何らかの方法を見つけます。

どのように私はそれをすべきか考えていますか?

4

3 に答える 3

6
var d = $('#myDiv');
var empty = d.text().trim().length === 0 || !d.is(':visible');
于 2012-07-09T09:55:07.687 に答える
4

これは動作するはずです。 http://jsfiddle.net/fedmich/SmRnT/

正規表現を介してHTMLコメントをクリーンアップしています

 $(function() {
    var w = $('#whatever').clone();
    w.find(':hidden').remove();

    var html = w.html();
    html = html.replace(/<!--.*-->/g,'')
    html = $.trim(html);

    alert( html );
});​

要約する

 clone the object
 remove hidden elements
 remove html comments
 $.trim(  )
于 2012-07-09T09:52:22.923 に答える
3

何かが空でないかのように空白を数えない場合:

$("selector").is(":empty")

また

$("selector").contens().length

トリックを行います。

テキストノードを空としてカウントしたくない場合:

$("selector").children().length

参照:
http ://api.jquery.com/empty-selector/
http://api.jquery.com/contents/
http://api.jquery.com/children/

于 2012-07-09T09:55:15.807 に答える