2012-10-15 60 views
2

可能重复:
Clear 5 empty TDs with Jquery查找使用jQuery的DOM元素,并删除

我想搜索的DOM任何实例(可能是多个),其中DOM包含专门

<td></td><td></td><td></td><td></td><td></td> 

并在Jquery中删除它。任何帮助?

+2

难道你没有问这个问题,并得到答案? http://stackoverflow.com/questions/12896979/clear-5-empty-tds-with-jquery – billyonecan

+0

我没有得到一个有效的答案...我虽然这可能更具体。 – Eric

回答

1

如果字符串常量,那么你可以从HTML中删除它,

Live Demo

$('#tbl').html($('#tbl').html().replace('<td></td><td></td><td></td><td></td><td></td>', '')); 
+2

这不会做任何事情。 – SLaks

+0

试过了,不起作用。 – Eric

+0

我已经更新了我的答案,这将工作,如果字符串不改变。 – Adil

0

这是新demo

HTML:

<table> 
<tr> 
<td></td><td></td><td></td><td></td><td></td> 
</tr> 
</table>​ 

JS

$(function(){ 

    $.map($("td:empty"),function(elem,i){ 
     console.log(i); 

     var length =5; 
     var current = length; 
     var $ptr = $(elem); 

     while(current>=0){ 
      if ($ptr.next("td:empty").size() == 1){ 
       current = current -1; 
       $ptr = $ptr.next("td:empty"); 

      }else{ 
       break; 
      } 
     } 
     if(current<= 1){ 
      $(elem).siblings("td:empty:lt("+length+")").remove(); 
      $(elem).remove();         
     } 

    }); 

});​ 
+1

我不想清除所有TDS,只是其中的html =​​​​​​​​​​ – Eric

0

我建议:

var rows = $('tr').filter(function(){ 
       var that = $(this), 
        len = that.find('td').length; 
       return that.find('td:empty').length == len && len == 5; 
      }); 

参考文献:

+0

我不想清除所有TDS,只是其中的html =​​​​​​​​​​ – Eric

+0

是吗?哦,我明白了,我看到另一个答案中使用了'remove()',并认为我一定错过了这个问题中的一些东西。那是因为删除和选择器/过滤器分配给变量以供以后访问。 –