--- title: Node.previousSibling slug: Web/API/Node/previousSibling tags: - プロパティ - リファレンス - 読み取り専用 browser-compat: api.Node.previousSibling translation_of: Web/API/Node/previousSibling --- {{APIRef("DOM")}} **`previousSibling`** は {{domxref("Node")}} インターフェイスの読み取り専用プロパティで、指定されたノードの親ノードの {{domxref("Node.childNodes", "childNodes")}} リスト内で、直前にある ノードを返します。指定されたノードがリストの先頭にあった倍は `null` を返します。 > **Note:** ブラウザーはソースのマークアップにあるホワイトスペースを表すために、文書にテキストノードを挿入します。 > そのため、例えば [`Node.firstChild`](/ja/docs/Web/API/Node/firstChild) や `Node.previousSibling` を使用して得たノードが、取得しようとした実際のノードではなく、ホワイトスペースのテキストノードであることがあります。 > > [DOM でのホワイトスペース](/ja/docs/Web/API/Document_Object_Model/Whitespace)の記事に、この動作に関する詳しい情報があります。 > > [`previousElementSibling`](/ja/docs/Web/API/Element/previousElementSibling) を使用すると、(テキストノードやその他の要素以外のノードを飛ばして)次の要素を取得することができます。 > > 子ノードのリストで反対方向に移動する場合は、 [Node.nextSibling](/ja/docs/Web/API/Node/nextSibling) を使用してください。 ## 値 現在のノードの直前のノードを表す {{domxref("Node")}} です。 存在しない場合は `null` です。 ## 例 次の例では、要素にテキストノードがある場合とない場合の `previousSibling` の動作を示しています。 ### 最初の例 この例では、一連の `img` 要素が互いに隣り合っており、その間にホワイトスペースがありません。 ```html ``` ```js document.getElementById("b1").previousSibling; // document.getElementById("b2").previousSibling.id; // "b1" ``` ### 2 番目の例 この例では、 `img` 要素の間にホワイトスペースのテキストノード(改行)があります。 ```html ``` ```js document.getElementById("b1").previousSibling; // #text document.getElementById("b1").previousSibling.previousSibling; // document.getElementById("b2").previousSibling.previousSibling; // document.getElementById("b2").previousSibling; // #text document.getElementById("b2").previousSibling.id; // undefined ``` ## 仕様書 {{Specifications}} ## ブラウザーの互換性 {{Compat}} ## 関連情報 - {{domxref("Node.nextSibling")}} - {{domxref("Element.previousElementSibling")}}