2013-04-12 3 views
1

Я использую сценарий ниже, чтобы скрыть пробел div, li и td. Он работает нормально. Единственная проблема, с которой я столкнулся, - это когда страница загружается, показывает пробел divs, li и td. У меня есть класс границ на этих пустых div, которые становятся видимыми до тех пор, пока загрузка страницы не будет завершена, чего я не хочу. Я хочу сохранить его скрытым, пока эти элементы не будут заполнены никаким текстом или каким-либо контентом.Как скрыть пустые divs при загрузке страницы

Сценарий:

$(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'); 
    }); 

Могу ли я получить любую помощь, чтобы сделать это исправить.

Thanks,

ответ

1

один Простое решение - изменить вашу стратегию. По умолчанию держите divs скрытым и покажите те divs, которые не являются пустыми.

обновление:

в вашем 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'); 
+0

Эй, я также получил эта идея. Но увидел твою после моего опубликования – 2013-04-12 08:45:12

+0

@silentboy: эй, все в порядке. –

+0

Как я могу это сделать. Можете ли вы показать мне какой-нибудь пример. Спасибо, –

0

Вы не можете изменить dom перед загрузкой. Но если вы действительно хотите сделать это, то воспользоваться этой apporch:

  • по умолчанию скрываются каждый div, li и т.д.
  • когда документ получить готовый отобразить их, если они не являются пустыми
0

В основном мы используем это, если элемент пуст, чтобы скрыть

$(function() { 
     $("element:empty").hide(); 
}); 
1

Почему бы не так:

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

Просто получить пустой DIV и обрезать любой пробел он имеет, и если он пуст, то просто спрячь его.

1

Вы можете скрыть empty дивы с определенным классом errorMsg на странице загрузки, как это:

$(function() { 
    $("div.errorMsg:empty").hide(); 
}); 

Если вы хотите, чтобы скрыть все empty дивы на странице:

$(function() { 
    $("div:empty").hide(); 
}); 
Смежные вопросы