8

我有一些看起来像这样的 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 以找到最近的元素,其 ID 属性以“nbContent_GR”开头。所以基本上我希望能够在不知道其确切 ID 的情况下找到父 TR 元素,只是第一个以“nbContent_GR”开头的元素。这可能吗?如果是这样,我会怎么做?

顺便说一句,我知道最接近()和“包含”选择器,只是不确定 contains 是否可以用于属性值。

4

3 回答 3

14

做就是了:

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

它将遍历 DOM,直到找到 ID 以“nbContent_GR”开头的父级

于 2012-10-13T23:32:47.517 回答
3
.closest('[id^="nbContent_GR"]')
于 2012-10-13T23:33:50.713 回答
2

两个有用的页面:

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

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

我认为您可以将这些结合起来作为解决方案。

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

例如:

$(this).closest("tr").parent().find("id^='nbContent_GR'");
于 2012-10-13T23:35:33.123 回答