1

以下のスクリプトを使用して、空白、、およびを非表示にしてdivliますtd。それはうまくいっています。私が直面している唯一の問題は、ページが読み込まれると空白が表示されることdivsです。これらの空白の div には、ページの読み込みが完了するまで表示される境界クラスがありますが、これは望ましくありません。これらの要素にテキストやコンテンツが入力されなくなるまで、非表示にしたいと考えています。litd

脚本:

$(document).ready(function(){
    $("td:empty").css('display', 'none');
    $("div[class='errorMsg']").filter(function(i,v){return $.trim($(v).text()).length == 0;}).css('display', 'none');
    $('li').filter(function(){return $.trim($(this).html()) == '';}).hide()
    $("td[class='noShow']").filter(function(i,v){return $.trim($(v).text()).length == 0;}).css('display', 'none');
  });

それを修正するための助けを得ることができますか?

ありがとう、

4

5 に答える 5

1

簡単な解決策の 1 つは、戦略を変更することです。デフォルトでは、div は非表示のままにし、空白ではない div を表示します。

アップデート :

css ファイルで div.errorMsg を非表示にします。

div.errorMsg
{
    display : none;
}

次に、スクリプトでコードを次のように変更します。

$("div[class='errorMsg']").filter(function(i,v){return $.trim($(v).text()).length > 0;}).css('display', 'block');

または以下のように記述します。

$("div.errorMsg:not(:empty)").css('display', 'block');
于 2013-04-12T08:40:31.303 に答える
1

なぜこのようにしないのですか:

var $div2hide = $.trim($("div.errorMsg:empty"));
$div2hide.hide();

空の div を取得して空白を削除し、空の場合は非表示にします。

于 2013-04-12T08:43:44.003 に答える
0

ロードする前に dom を変更することはできません。しかし、本当にやりたい場合は、次のアプリを使用してください。

  • デフォルトでは、すべてdivを非表示にするliなど。
  • ドキュメントの準備ができたときに、空でない場合はそれらを表示します
于 2013-04-12T08:40:15.880 に答える
0

基本的に、要素が空の場合にこれを使用して非表示にします

$(function() {
      $("element:empty").hide();
});
于 2013-04-12T08:41:43.873 に答える