如果另一个为空,则删除一个div

时间:2012-05-02 03:16:52

标签: jquery html conditional

我正试图让一个div显示另一个是否为空。这需要在整个页面中多次发生。该脚本无法在当前状态下工作。

脚本:

$('.standard_page_list_result').each(function(){

if ($('.children p').length == 0)
    $('.summary').css("display", "block");

});

HTML:

<div class="standard_page_list_result"><div class="children"><p>Hello</p></div>
<div class="summary"><p>Goodbye</p></div></div>

<div class="standard_page_list_result"><div class="children"><p>Hello</p></div>
<div class="summary"><p>Goodbye</p></div></div>

<div class="standard_page_list_result"><div class="children"><p>Hello</p></div>
<div class="summary"><p>Goodbye</p></div></div>

<div class="standard_page_list_result"><div class="children"><p></p></div>
<div class="summary"><p>Hello!</p></div></div>

CSS:

.summary { display: none; }

5 个答案:

答案 0 :(得分:3)

在一行中:

$('.standard_page_list_result .children p:empty').parent().next('.summary').css('display','block');

演示:http://jsfiddle.net/JXDNk/

答案 1 :(得分:2)

使用相同的概念,您需要使用this识别您的概念,然后执行查找选择器以使其正常工作。你正在做的是获得所有的长度。

$('.standard_page_list_result').each(function(){
    if ($(this).find('.children p').text().length == 0)
        $(this).find('.summary').css("display", "block");
});

这是适合你的jsFiddle

http://jsfiddle.net/JoshuaPack/4C35E/

答案 2 :(得分:1)

而不是使用is()函数检查<div>尝试的长度。

$('.standard_page_list_result').each(function(){
   if($(this).find('.children p').is(':empty')) {
      $(this).find('.summary').css("display", "block");
   }
});

修改

修正了上面的代码,选择每个元素而不是影响所有元素,如果只有1是空的。已经选择了其他答案,但对于未来的观众来说,这是使用is()函数的替代方案。这是一个fiddle

注意:空检查也没有空格。如果只有一个空格,那么它就不是空的

答案 3 :(得分:1)

根据元素的空虚来切换摘要:

$('.standard_page_list_result').each(function(){
  $('.summary', this).toggle( $('.children p', this).is(":empty") );
});​

答案 4 :(得分:0)

$('...').length将告诉您与您的选择器匹配的元素数量,而不是这些元素是否为空。

要检查元素是否为空,我可能会这样做:

if($.trim($(...).text()).length == 0)

最后,您需要在每个内部使用this来定位相应的元素。像这样:

$('.standard_page_list_result').each(function(){
    var $this = $(this);

    if ($.trim($this.find('.children p').text()).length == 0){
        $this.find('.summary').css("display", "block");
    }
});

http://jsfiddle.net/kzfGL/1/