我有以下HTML代码:
<div class="display_label">Work phone:</div>
<div class="display_work_phone display_attr"></div>
<div class="display_label">Email:</div>
<div class="display_work_phone display_attr"></div>
<div class="display_label">Comment:</div>
<div class="display_comment display_attr"></div>
有时,工作电话和评论有时会变空,所以我想用“ - ”字符替换“空虚”。我试着检查它的长度是否为0,但我无法弄清楚如何使其工作。如果它没有值,我想检查并用classname“display_attr”替换每个div的内容。
答案 0 :(得分:5)
您可以使用:empty-selector
$('.display_work_phone, .display_comment').filter(':empty').html('-')
注意:如果节点包含空文本节点,那么空选择器将不起作用,在这种情况下,您可以自己编写一个简单的过滤器,如
$('.display_work_phone, .display_comment').filter(function () {
return $.trim($(this).text()).length == 0
}).html('-')
答案 1 :(得分:2)
你也可以使用css:
.display_attr:empty::after { content: '-'; }
但如果元素包含空格则无效。
<强>浏览器的支持:强>
答案 2 :(得分:1)
这就是我处理这个问题的方法..
$('.display_work_phone, .display_comment').filter(function () {
return /^\s*$/.test($(this).text());
}).html('-');