我找到了几种隐藏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();
}
});
});
答案 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();
}
});