删除带表的空div

时间:2013-06-13 06:36:44

标签: javascript jquery html css

我有一些嵌套在div中的表,其中一些是空的,或者包含一个空格,或者包含单个字符,如" - ",我称之为 EMPTY DIVs 。如何在加载文档时使用JavaScript删除上面描述的 EMPTY DIV

部分 EMPTY DIV 就像这样

<div class="extra">
 <table>
  <tr>
   <td></td>
  </tr>
 </table>
</div>

<div class="extra">
 <table>
  <tr>
   <td>-</td>
  </tr>
 </table>
</div>

4 个答案:

答案 0 :(得分:3)

试试这个

var $emptyDivs = $();

$('div table').each( function(){
    // getting table text, replaced with space
    var c = $(this).text().replace(/\s/g,'');
    // add condition for empty check 
    if ( c =='' || c == '-'){
       // add parent div
       $emptyDivs.push( $(this).closest('div')[0] );
    }
});

// remove empty div
$emptyDivs.remove();

希望这会有所帮助..

答案 1 :(得分:2)

尝试

$('.extra').filter(function(){
    var text = $.trim($(this).find('table').text());
    return text == '' || text == '-';
}).remove()

演示:Fiddle

答案 2 :(得分:0)

试试这种方式,

您可以使用$('#yourdivid').text()获取div的值,与您想要的值进行比较,并使用以下方法删除div。

var rdiv = document.getElementById('yourdivid');
    rdiv.parentNode.removeChild( rdiv );

答案 3 :(得分:0)

试试这个:

$(".extra").find("table").each(function(){  
   if( $.trim($(this).find("tr td").text()) == "" || $.trim($(this).find("tr td").text()) == "-" )
      {
        $(this).parents(".extra:first").remove();
      }

});