我的脚本有点问题。我需要检查一些跨度,如果我在其中间有一些内容我什么都不做......但如果它是空的我想删除这个跨度或例如更改样式。现在,当指定span为空时,脚本会清除所有跨度,即使它们不是空的。你能救我吗?
HTML
<span class="insert_list_item"></span>
<span class="insert_list_item">data</span>
脚本
if ($('.insert_list_item').length > 0){
$('.insert_list_item').each().remove();
}
答案 0 :(得分:4)
使用:empty
$('.insert_list_item:empty').remove()
删除所有空元素。或
$('.insert_list_item:not(:empty)').remove()
删除所有非空元素
在http://api.jquery.com/category/selectors/上,您可以看到所有可用的选择器。
答案 1 :(得分:2)
每个检查长度:
$('.insert_list_item').each( function(){
var span = $(this);
if (span.html().length === 0) {
span.remove();
}
});
或
过滤:空:
$('.insert_list_item').filter(":empty").remove();
答案 2 :(得分:2)
怎么样:
$( '.insert_list_item' ).filter(function () {
return $.trim( $( this ).text() ) === '';
}).remove();
现场演示: http://jsfiddle.net/RMZLm/
请注意,此解决方案也适用于包含空格的SPAN元素(例如<span class="insert_list_item"> </span>
)。
答案 3 :(得分:1)
在each
内使用条件。每个迭代遍历选择器返回的所有元素。
$('.insert_list_item').each(function(){
if($(this).html().length === 0)
$(this).remove();
});
答案 4 :(得分:0)
试试这个:
if ($('.insert_list_item').text().length > 0){
$('.insert_list_item').remove();
}