我有一个表格结构。
<table id="table">
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
</table>
现在我要编写JQuery代码。
这将是循环表并从第二个td删除td中的a tag
。
答案 0 :(得分:2)
selector "#table td:not(:nth-child(2)) a"
将遍历所有所需的链接,而remove方法将清除它们。
$('#table td:not(:nth-child(2)) a').remove();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
</table>
答案 1 :(得分:1)
您可以将each
用于td和find
标签,并使用removeAttr
删除href
$("#table tr").each(function(index, item){
$(item).find('td').eq(0).find('a').removeAttr("href");
$(item).find('td').eq(2).find('a').removeAttr("href");
$(item).find('td').eq(3).find('a').removeAttr("href");
$(item).find('td').eq(4).find('a').removeAttr("href");
});
$("#table tr").each(function(index, item){
$(item).find('td').eq(0).find('a').removeAttr("href");
$(item).find('td').eq(2).find('a').removeAttr("href");
$(item).find('td').eq(3).find('a').removeAttr("href");
$(item).find('td').eq(4).find('a').removeAttr("href");
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
</table>
答案 2 :(得分:1)
这将删除a标签:
$('#table tr').each(function() {
$(this).find('td').each (function(index) {
if(index != 1)
{
let str = $(this).find('a').html();
$(this).html('');
$(this).html(str);
}
});
})
答案 3 :(得分:1)
基于.replaceWith()或.empty()的简化解决方案:
$('#table tr>td:not(:nth-child(2)) a').replaceWith((idx, ele) => ele);
$('#table tr>td:not(:nth-child(2))').empty();
// $('#table tr>td:not(:nth-child(2)) a').replaceWith((idx, ele) => ele);
$('#table tr>td:not(:nth-child(2))').empty();
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="table">
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
<tr>
<td><a href="/one">One</a></td>
<td><a href="/two">Two</a></td>
<td><a href="/three">Three</a></td>
<td><a href="/four">Four</a></td>
<td><a href="/five">Five</a></td>
</tr>
</table>