没有检索到mysql值时隐藏div

时间:2012-06-12 14:54:23

标签: jquery

我找到了几种隐藏div的解决方案,当它们是空的但没有与mysql检索的值相关联时。

<button class="platform_category" id="platform_', $platform['platform_id'],'_category"><a href="', $platform['platform_url'],'" target="_tab">', $platform['platform_category1'],'</a></button>

当mysql-row中没有数据时,Jquery不隐藏div,因为它认为$ platform ['platform_category1']是一个值,即使只有php代码来检索mysql值,如果有的话。

对于隐藏的jquery代码我正在使用它:(如果我将==替换为= =它隐藏了)

    $(function() {
    $('.platform_category').each(function() {
        if ($(this).html() == "") {
             $(this).hide();
       }
    }); 
});

4 个答案:

答案 0 :(得分:2)

platform_category的按钮具有<a>标记作为内部html,因此html()方法在这里没有任何意义(它将始终返回<a>)。请尝试text()

$('.platform_category').each(function() {
    if ($(this).text() == "") {
        $(this).hide();
    }
});

GOOD NOTE (来自@Blazemonger):使用$.trim()方法修改文字很好:

if ($.trim($(this).text()) == "") {
    $(this).hide();
}

答案 1 :(得分:1)

我会使用过滤器来检查.platform_category的内容。见下文,

$(function() {
   $('.platform_category').filter(function() {
       return $.trim($(this).text()) == '';
    }).hide();
});

答案 2 :(得分:0)

问题是$('。platform_category')实际上并不是空的,因为div中总是有一个锚标记。

你可以通过两种方式做到这一点,无论是通过PHP(最好的)还是通过JavaScript

通过PHP

   if ($platform['platform_category1'] != "") {
     <button class="platform_category" id="platform_', $platform['platform_id'],'_category">
        <a href="', $platform['platform_url'],'" target="_tab">',$platform['platform_category1'],'</a>   
      </button>

如果你必须通过JavaScript

    $(function() {
    $('.platform_category').each(function() {
        if ($(this).find('a').html() == "") {
             $(this).hide();
       }
    }); 
});

答案 3 :(得分:-1)

$('.platform_category').each(function() {
    if ($.trim( $(this).text() )  ==  "") {
        $(this).hide();
    }
});