如何用jquery删除指定元素?

时间:2012-08-08 14:26:44

标签: javascript jquery css

我的脚本有点问题。我需要检查一些跨度,如果我在其中间有一些内容我什么都不做......但如果它是空的我想删除这个跨度或例如更改样式。现在,当指定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();
} 

5 个答案:

答案 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();
}