检查div的长度,不包括空格

时间:2014-12-08 22:21:25

标签: javascript jquery

我有以下代码来检测某个div中是否有内容:

if ($(".bio").html().length > 0) {
   $('.author-info').hide();
} 

我遇到的问题是有些空间可能在.bio字段中。我想检查不包括空格的长度。换句话说,检查div是否有内容但空格不算作内容。

我该怎么做?

注意:我使用的是jQuery 2.1.1。

4 个答案:

答案 0 :(得分:5)

您可以删除所有空格并检查结果的长度:

$(".bio").text().replace(/ /g, '').length > 0

我们也可以更通用,并使用\s选择所有空格:



$(function(){
  $(".bio").each(function(){
    if( $(this).text().replace(/\s/g, '').length > 0 ){
      $(this).after("<- Has text");
    } else {
      $(this).after("<- Just spaces");
    }
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="bio">Text with spaces</span>
<br>
<span class="bio">&nbsp;&nbsp; &nbsp;</span>
&#13;
&#13;
&#13;

答案 1 :(得分:4)

if($(".bio").html().trim().length > 0){
    ...
}

请参阅.trim()

答案 2 :(得分:1)

你可以添加另一个条件来检查是否有这样的空间:

if (($(".bio").html().length > 0)&&($(".bio").text()!=" ")) 
{
   $('.author-info').hide();
} 

答案 3 :(得分:0)

作为@abl和@ Purag的优秀答案的替代方案,您还可以手动循环浏览文本,查找非空格字符:

var bioContent = $(".bio").html();
var hasContent = false;
var characterToIgnore = ' ';

for (var i=0;i<bioContent.length;i++){
    if (bioContent[i] != characterToIgnore){
        hasContent = true;
        break;
    }
}

JSFiddle