如果表数据不包含特定类,则删除表行

时间:2016-03-01 09:43:10

标签: javascript jquery html

我有一个关于删除表中的表行的问题。我得到了以下HTML:

<table>
      <tr>
          <td class="html5badge"><a href="">autofocus</a></td>
          <td>autofocus</td>
          <td>Specifies that the drop-down list should automatically get focus when the page loads</td>
      </tr>
      <tr>
          <td><a href="">disabled</a></td>
          <td>disabled</td>
          <td>Specifies that a drop-down list should be disabled</td>
      </tr>
      <tr>
          <td class="html5badge"><a href="">test</a></td>
          <td>autofocus</td>
          <td>Specifies that the drop-down list should automatically get focus when the page loads</td>
      </tr>
</table>

我需要一种机制来查看第一个<td>是否不包含html5badge类并删除父级:<tr>

为此,我创建了以下jQuery代码:

$(document).ready(function() {
    $(".onlyhtml5").click(function(event) {
        event.preventDefault();
        var classname = $('table tr td').not('.html5badge'); 
        console.log(classname)
        for (i = 0; i < classname.length; i++) { 
                $(classname[i].parentNode).remove();    
        }                
    });
});

这有效,但它并不完全符合我的要求。正如您在JSFIDDLE中看到的那样,它将删除所有表格行。但我想要的是以下所需的输出:

<table>
      <tr>
          <td class="html5badge"><a href="">autofocus</a></td>
          <td>autofocus</td>
          <td>Specifies that the drop-down list should automatically get focus when the page loads</td>
      </tr>
      <tr>
          <td class="html5badge"><a href="">test</a></td>
          <td>autofocus</td>
          <td>Specifies that the drop-down list should automatically get focus when the page loads</td>
      </tr>
</table>

所需的输出是包含text:disabled的<tr>已删除!基于此<td>中的<tr>不包含类:html5badge的事实。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用filter()检索不包含tr的{​​{1}}元素并将其删除:

td.html5badge

Updated fiddle

答案 1 :(得分:1)

简单地做到

$(document).ready(function() {
    $(".onlyhtml5").click(function(event) {
        event.preventDefault();
        $('table tr td').not('.html5badge').each( funtion(){
           $( this ).parent().remove();
        } ); 
    });
});