关于删除表中的表行,我遇到了一个问题。我得到了以下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>
所需的输出是删除包含文本:禁用的<tr>
!基于这个<tr>
中的<tr>
不包含类:html5badge
这一事实。
我怎样才能做到这一点?
发布于 2016-03-01 01:46:12
可以使用filter()
检索不包含td.html5badge
的tr
元素,并删除它们:
$(".onlyhtml5").click(function(e) {
e.preventDefault();
$('tr').filter(function() {
return $(this).find('td.html5badge').length == 0;
}).remove();
});
发布于 2016-03-01 01:45:50
简单地说
$(document).ready(function() {
$(".onlyhtml5").click(function(event) {
event.preventDefault();
$('table tr td').not('.html5badge').each( funtion(){
$( this ).parent().remove();
} );
});
});
https://stackoverflow.com/questions/35719404
复制相似问题