我不知道这篇文章的标题是否有意义,但这里有一个我正在使用的样本:
<tbody>
<tr class="classRow" bgcolor="#EFE5D3" style="font-weight: bold;">
<td width="35px"><a class="classEditLink" name="33" href="#">Edit</a></td>
<td width="20px"><input type="checkbox" class="chkSelectToDelete" name="deleteClasses[]" value="33" /></td>
<td>CLASS1234</td>
<td>Class description</td>
</tr>
<tr class="classDocsRow noDocs">
<td colspan="4">
<strong>No documents are currently associated with this class.</strong>
</td>
</tr>
</tbody>
我需要使用前一行<td>
的{{1}}的{name}属性来查找第二行。伪代码就像
<a>
我不知道这是否是正确的jQuery语法(因为它不起作用),但希望你明白这一点:选择器的“起点”是$('.classRow a[name="' + classID + '"]').parent().parent().next().remove()
的name属性标签,我需要删除以下行。 <a>
标记的name属性是页面上给定<a>
中唯一的唯一属性(不包括该行中的第三个和第四个<tbody>
,但是您得到了这一点。)< / p>
这样做的格式正确/语法化的jQuery选择器是什么?
答案 0 :(得分:6)
如果我理解你的问题:
$('tr:has(a[name="33"]) + tr').remove();
指向相应JQuery文档的链接:
答案 1 :(得分:0)
如果我理解你的问题,那么你想要这样的事情:
$(".classRow a[name=" + className + "]").closest("tr").next().remove();
查看示例小提琴here。
答案 2 :(得分:0)
你可以尝试
$('.classRow a[name="' + classID + '"]').parents("tr").next().remove();
如果它不起作用,请提醒classID检查是否正常
答案 3 :(得分:0)
您的示例有效,只需确保设置了classID:working fiddle
答案 4 :(得分:0)
这不一定直接回答你的问题,而只是一个建议的话......如果你有一个列出每一行中的类的表,那么将每个单独的类的所有内容放在同一行中会更有意义。因此,文档容器确实属于与文档关联的类行。
这样做的好处是:
然后你所要做的就是这样:
$('.classRow a[name="' + classID + '"]').parent('classRow').find('.classDocs').remove();
答案 5 :(得分:0)
此代码适用于我(在上面的HTML上测试):
$('.classRow a[name="' + classID + '"]')
.closest('tr')
.next()
.remove();
此外,我不确定在您的示例中该代码的确切位置,但如果它应该“在加载时”发生,则需要等待DOM准备就绪:
$(function() {
// the code snippet here
});