使用jQuery查找具有特定属性的行之后的jQuery

时间:2011-06-14 12:31:28

标签: javascript jquery html-table row

我不知道这篇文章的标题是否有意义,但这里有一个我正在使用的样本:

<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选择器是什么?

6 个答案:

答案 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
});