让我说我有这个HTML。
<tr>
<td>Spain</td>
<td>Madrid</td>
<td>Barcelona</td>
<td>Sevilla</td>
</tr>
<tr>
<td>UK</td>
<td>Scotland</td>
<td>London</td>
<td>Edinburgh</td>
</tr>
现在我想删除一个tr
,其子td
值为西班牙,马德里和巴塞罗那,无论第四个孩子有什么。
如何实现这一目标?如果使用jQuery,会更好。
先谢谢你。
答案 0 :(得分:1)
您可以使用以下内容:
$("tr:contains('Spain'):contains('Madrid'):contains('Barcelona')").remove();
还要确保您已将tr
包裹在标记中的table
答案 1 :(得分:0)
您可以在数组中创建一个带有2个参数的函数:table元素和要匹配的值。你可以这样称呼它:
filterOut(document.getElementById('myTable'), ['Spain', 'Madrid', 'Barcelona']);
function filterOut(table,contents){
var rows = table.getElementsByTagName('tr'),
cells,
match;
for(var i=0; i<rows.length; i++){
match = true;
cells = rows[i].getElementsByTagName('td');
for(var j=0, l=cells.length; j<l && j<contents.length; j++){
if(cells[j].textContent.trim() != contents[j]) { match = false; break; }
}
if(match){ rows[i].parentNode.removeChild(rows[i]); i--; }
}
}
document.getElementById('filter-btn').addEventListener('click', function(){
filterOut(document.getElementById('myTable'), ['Spain', 'Madrid', 'Barcelona']);
});
<table id="myTable">
<tr>
<td>Spain</td>
<td>Madrid</td>
<td>Barcelona</td>
<td>Sevilla</td>
</tr>
<tr>
<td>UK</td>
<td>Scotland</td>
<td>London</td>
<td>Edinburgh</td>
</tr>
<tr>
<td>Spain</td>
<td>Madrid</td>
<td>Barcelona</td>
<td>London</td>
</tr>
<tr>
<td>Spain</td>
<td>Madrid</td>
<td>Paris</td>
<td>Sevilla</td>
</tr>
</table>
<button id="filter-btn">Filter</button>