HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

HTML DOMのpreviousElementSiblingプロパティの使い方をわかりやすく解説

HTML DOMのpreviousElementSiblingプロパティは、HTML文書内において、指定された要素と同じ階層(ツリー構造上の同じレベル)に存在する、直前の要素を取得するためのプロパティです。

テキストノードや空白などを含まない「要素ノード」のみを対象とするため、隣接する要素を簡単に参照できるのが特徴です。

構文

previousElementSiblingプロパティの基本的な構文は以下の通りです。

node.previousElementSibling

サンプルコード

それでは、previousElementSiblingプロパティの具体的な使用例を見てみましょう。以下の例では、「Chemistry(化学)」というリスト項目の直前の兄弟要素を取得して表示します。

<!DOCTYPE html>
<html>
<head>
<style>
   html{
      height:100%;
   }
   body{
      text-align:center;
      color:#fff;
      background: linear-gradient(62deg, #FBAB7E 0%, #F7CE68 100%) center/cover no-repeat;
      height:100%;
   }
   p{
      font-weight:700;
      font-size:1.2rem;
   }
   .drop-down{
      width:50%;
      border:2px solid #fff;
      font-weight:bold;
      padding:8px;
   }
   ul{
      list-style-type: none;
      padding:0;
   }
   .btn{
      background:#0197F6;
      border:none;
      height:2rem;
      border-radius:2px;
      width:50%;
      margin:2rem auto;
      display:block;
      color:#fff;
      outline:none;
      cursor:pointer;
   }
   .show{
      font-size:1.5rem;
      font-weight:bold;
   }
</style>
</head>
<body>
<h1>DOM previousElementSibling プロパティ デモ</h1>
<p>こんにちは!私の好きな教科は以下の通りです:</p>
<ul>
<li>物理</li>
<li id="chemistry">化学</li>
<li>数学</li>
<li>英語</li>
</ul>
<button class="btn" onclick="showSibling()">化学の直前の兄弟要素を表示</button>
<div class="show"></div>
<script>
   function showSibling() {
      var chemistry= document.querySelector("#chemistry");
      document.querySelector(".show").innerHTML=chemistry.previousElementSibling.innerHTML;
   }
</script>
</body>
</html>

コードのポイント

スクリプト部分では、document.querySelector("#chemistry")によってid属性が「chemistry」のリスト項目を取得し、そのpreviousElementSiblingプロパティを参照することで、直前の要素(この場合は「物理」のリスト項目)を取得しています。

実行結果

上記のコードをブラウザで実行すると、次のように表示されます。

HTML DOMのpreviousElementSiblingプロパティの使い方をわかりやすく解説

表示された青いボタンをクリックすると、「化学」リスト項目の直前の兄弟要素である「物理」が画面に出力されます。

HTML DOMのpreviousElementSiblingプロパティの使い方をわかりやすく解説

補足:関連するプロパティ

previousElementSiblingプロパティと対になるものとして、同じ階層の直後の要素を取得するnextElementSiblingプロパティがあります。両者を組み合わせることで、DOMツリー上の同一レベルにある要素を前後に自由にたどることができます。

なお、直前の兄弟要素が存在しない場合(指定した要素が最初の子要素である場合など)、previousElementSiblingプロパティはnullを返すため、実際の開発ではnullチェックを行うことが推奨されます。

  1. 【初心者向け】HTML DOMのoffsetParentプロパティの使い方とサンプルコード

    offsetParentプロパティとは HTML DOM の offsetParent プロパティは、対象要素のオフセット(相対的な位置)がどの親要素を基準として定義されているかを示し、その基準となる親要素への参照を返します。 具体的には、CSS の position プロパティ(relative / absolute / fixed / sticky)が指定された最も近い祖先要素が基準となります。該当する要素が存在しない場合は <body> 要素が返されます。また、テーブルセル内の要素であれば <td> や <table> などのテーブル関連要素が基準にな

  2. HTML DOM titleプロパティとは?使い方とサンプルコードを解説

    HTML DOM titleプロパティとはHTML DOMのtitleプロパティは、HTML要素のtitle属性に対応する文字列を取得(戻り値として返す)したり、設定したりするためのプロパティです。title属性に値が設定されている場合、その要素にマウスカーソルを重ねると、ツールチップとしてテキストが表示されます。この動的な挙動をJavaScriptから制御できるのが、titleプロパティの役割です。構文title属性の値を取得する場合:ElementOfHTMLObject.titletitle属性に文字列を設定する場合:ElementOfHTMLObject.title = string使