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>

行の 1 つの中で、DOM を上に移動して、"nbContent_GR" で始まる ID 属性を持つ最も近い要素を見つけたいと考えています。したがって、基本的には、正確な ID を知らなくても親 TR 要素を見つけられるようにしたいと考えています。「nbContent_GR」で始まる最初の要素だけです。これは可能ですか?もしそうなら、どうすればいいですか?

ところで、closest() セレクターと「contains」セレクターは知っていますが、contains を属性値で使用できるかどうかはわかりません。

4

3 に答える 3

14

ただ行う:

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

「nbContent_GR」で始まる ID を持つ親が見つかるまで、DOM をトラバースします。

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

見ておくと便利な 2 つのページ:

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

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

これらを組み合わせて解決できると思います。

TR 内から、最も近い TR を見つけます。次に、「で始まる」セレクターを使用して、必要な値で始まる ID を見つけます。

例えば:

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