我有以下代码来检测某个div中是否有内容:
if ($(".bio").html().length > 0) {
$('.author-info').hide();
}
我遇到的问题是有些空间可能在.bio
字段中。我想检查不包括空格的长度。换句话说,检查div是否有内容但空格不算作内容。
我该怎么做?
注意:我使用的是jQuery 2.1.1。
答案 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"> </span>
&#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;
}
}