jQuery最接近的元素,其属性包含值

时间:2012-10-13 23:28:36

标签: javascript jquery

我有一些看起来像这样的HTML代码:

<tr id="nbContent_GR1">...</tr>
<tr id="nbContent_GR2">...</tr>
<tr id="nbContent_GR3">...</tr>
<tr id="nbContent_GR4">...</tr>
<tr id="nbContent_GR5">...</tr>
<tr id="nbContent_GR6">...</tr>

在其中一行中,我想遍历DOM以查找具有以“nbContent_GR”开头的ID属性的最接近元素。所以基本上我希望能够在不知道其确切ID的情况下找到父TR元素,只是第一个以“nbContent_GR”开头的ID。这可能吗?如果是这样,我该怎么做呢?

BTW,我知道最近的()和“包含”选择器,只是不确定是否可以在属性值上使用包含。

3 个答案:

答案 0 :(得分:14)

只是做:

tr = $(this).closest("[id^='nbContent_GR']");

将遍历DOM,直到找到ID为'nbContent_GR'的父代

答案 1 :(得分:3)

.closest('[id^="nbContent_GR"]')

答案 2 :(得分:2)

要查看两个有用的页面:

http://api.jquery.com/closest/

http://api.jquery.com/attribute-starts-with-selector/

我认为你可以将这些结合起来解决问题。

在TR内,找到最接近的TR。然后使用'starts with'选择器查找以所需值开头的ID。

E.g:

$(this).closest("tr").parent().find("id^='nbContent_GR'");