如何选择只有一个空格字符的空div和div,ej:
EJ: 一个jquery规则选择器,用于选择:
<div class="thumbnails"></div>
<div class="thumbnails"> </div>
但不要选择这个:
<div class="thumbnails">Lorem ipsum amet</div>
我试过这个
$('.thumbnails:empty').css('background-color', "#f0f");
并且可以正常使用:
<div class="thumbnails"></div>
但不选择这种情况(注释空格字符):
<div class="thumbnails"> </div>
答案 0 :(得分:4)
使用filter功能检测没有文字的元素
$('.thumbnails').filter(function(i,v){
return $.trim($(v).text()).length == 0;
}).css('background-color', "#f0f");
http://jsbin.com/ozohak/5/edit
编辑:
如果这是您的要求,您也可以使用过滤功能选择空元素和一个空格
$('.thumbnails').filter(function(i,v){
return $(v).text() == '' || $(v).text() == ' ';
}).css('background-color', "#f0f");
答案 1 :(得分:4)
您可以编写自己的Jquery选择器,并检查修剪后的文本(请参阅http://jsbin.com/ozohak/12/edit)
$.expr[':'].blank = function(obj){
return obj.innerHTML.trim().length === 0;
};
$('.thumbnails:blank').addClass('selected');
编辑:为了避免IE8及更低版本中的问题:
$.expr[':'].blank = function(obj){
return !$.trim($(obj).text()).length;
};
$('.thumbnails:blank').addClass('selected');
答案 2 :(得分:1)
您可以使用带有正则表达式的filter()
来确保text()
为空:
$('.thumbnails')
.filter(function() {
return $(this).text().replace(/\W/gi, '') == '';
})
.addClass('selected');
请注意,如果要在div中允许HTML元素,也可以与html()
进行比较。
答案 3 :(得分:-1)
没有选择器可以检查空白内容,但这里可能有所帮助:
$('div').each(function(i,e) {
if ($(e).html().trim() == "")
$(e).html("");
});
$('.thumbnails:empty').addClass('selected');
问候。
答案 4 :(得分:-2)
您可以使用以下代码
$('*').each(function() {
if ($(this).text() == "") { // you can change this to whatever #ex: char length
//Do Something
}
});