1. ホーム
  2. jquery

[解決済み] jQuery クラスで最も近い前の兄弟を見つける

2022-04-27 02:14:57

質問

これが私の手元にある大まかなHTMLです。

<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li> // this is the single element I need to select
<li class="sub_cat"></li>
<li class="sub_cat"></li>
<li class="sub_cat current_sub"></li> // this is where I need to start searching
<li class="par_cat"></li>
<li class="sub_cat"></li>
<li class="par_cat"></li>

からトラバースする必要があります。 .current_sub に最も近い以前の .par_cat で、それにいろいろと手を加える。

.find("li.par_cat") のロード全体を返します。 .par_cat (ページ上に約30個あります)。単一のものをターゲットにする必要があります。

どのように解決するのですか?

試してみてください。

$('li.current_sub').prevAll("li.par_cat:first");

あなたのマークアップでテストしてみました。

$('li.current_sub').prevAll("li.par_cat:first").text("woohoo");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
  <li class="par_cat"></li>
  <li class="sub_cat"></li>
  <li class="sub_cat"></li>
  <li class="par_cat">// this is the single element I need to select</li>
  <li class="sub_cat"></li>
  <li class="sub_cat"></li>
  <li class="sub_cat current_sub">// this is where I need to start searching</li>
  <li class="par_cat"></li>
  <li class="sub_cat"></li>
  <li class="par_cat"></li>
</ul>

は、最も近い前の li.par_cat を "woohoo"で表示します。