読者です 読者をやめる 読者になる 読者になる

Prototype.jsでjQueryにparents()みたいなことがしたければup()を使う

JavaScript jQuery Prototype.js

Prototype.jsとか久々に触ったので親要素辿るメソッド思い出せなかった。
jQueryの場合はparents()だよなぁ」とか思い、ドキュメントを検索したけど出て来ず。
ググってもいいのが出て来なくて必死に探してしまった。


答えはhttp://api.prototypejs.org/dom/Element/prototype/up/:titleup()ですと。

<ul class="level-1">
  <li class="item-i">I</li>
  <li class="item-ii">II
    <ul class="level-2">
      <li class="item-a">A</li>
      <li class="item-b">B
        <ul class="level-3">
          <li class="item-1">1</li>
          <li class="item-2">2</li>
          <li class="item-3">3</li>
        </ul>
      </li>
      <li class="item-c">C</li>
    </ul>
  </li>
  <li class="item-iii">III</li>
</ul>

こんな感じのHTMLがあった場合に、

$('li.item-2').eq(0).parents('li.item-ii').css('background-color', 'red');

こんなjQueryと同じ動きするscriptをPrototype.jsで書きたい場合は

$$('li.item-2')[0].up('li.item-ii').setStyle({'background-color': 'red'})

と書けばよい。