6

我有以下 HTML:

<div id="rightCon">




                    </div>

然后我在顶部有以下脚本:

$('#rightCon:empty').hide();

为什么div不隐藏?我可以看到有一些空间(我无法摆脱)但这真的很重要吗?当它只有空格时,如何删除/隐藏这个 div?

4

3 回答 3

7

您的元素似乎有一堆空白,这将给它一个文本节点。:empty由于这个原因,它不会被匹配。

您可以尝试查找元素并明确检查其内容:

$('#rightCon').filter(function() {
  var text = $(this).text().replace(/\s*/g, '');
  return !text;
}).hide();
于 2013-09-06T23:45:01.460 回答
4

这解决了问题。

$(document).ready(function () {
                if($('#rightCon').text().trim().length < 1)
                {$('#rightCon').hide();}
            });
于 2013-09-06T23:59:49.387 回答
1

您的 div 实际上不是empty(它包含空格)。所以选择器$("#rightCon:empty")永远不会评估和隐藏div.

由于HTML元素应该是唯一的,您可以放心地假设您可以通过以下方式选择正确的元素:

var rightCon = $("#rightCon");

然后,您可以通过以下方式隐藏元素:

right.hide();

或者

 $("#rightCon").hide();
于 2013-09-06T23:45:50.027 回答