私はしばらくjQueryを使用しています。parent()
セレクターを使いたかった。closest()
セレクターも思いつきました。それらの違いを見つけることができませんでした。何かありますか?はいの場合、何ですか?
どのような違いがあるparent()
、parents()
とclosest()
?
私はしばらくjQueryを使用しています。parent()
セレクターを使いたかった。closest()
セレクターも思いつきました。それらの違いを見つけることができませんでした。何かありますか?はいの場合、何ですか?
どのような違いがあるparent()
、parents()
とclosest()
?
回答:
closest()
DOMツリーから、セレクターに一致する最初の要素を選択します。現在の要素から始まり、上に移動します。
parent()
DOMツリーの1つ上の要素(単一レベル上)を選択します。
parents()
メソッドは似てparent()
いますが、DOMツリーの上のすべての一致する要素を選択します。親要素から始まり、上に移動します。
.parents()
(の代わりに.parent()
)すべての要素を取得するのではないですか?
http://api.jquery.com/closest/から
.parents()と.closest()メソッドは、DOMツリーアップどちらトラバースという点で類似しています。微妙ではありますが、2つの違いは重要です。
.closest()
- 現在の要素で始まる
- 指定されたセレクターに一致するものが見つかるまで、DOMツリーを上に移動します。
- 返されたjQueryオブジェクトには0個または1個の要素が含まれています
。親()
- 親要素で始まる
- DOMツリーをドキュメントのルート要素に移動し、各祖先要素を一時的なコレクションに追加します。セレクターが指定されている場合は、セレクターに基づいてそのコレクションをフィルター処理します
- 返されたjQueryオブジェクトには、0個、1個、または複数の要素が含まれています
。親()
- 一連のDOM要素を表すjQueryオブジェクトがある場合、.parent()メソッドを使用すると、DOMツリーでこれらの要素の親を検索し、一致する要素から新しいjQueryオブジェクトを構築できます。
注: .parents()メソッドと.parent()メソッドは似ていますが、後者はDOMツリーの1レベル上を移動するだけです。また、$( "html")。parent()メソッドはドキュメントを含むセットを返し、$( "html")。parents()メソッドは空のセットを返します。
ここに関連するスレッドがあります:
Note
。
The .parents() and .parent() methods are similar, except that the latter only travels a single level up the DOM tree. Also, $("html").parent() method returns a set containing document whereas $("html").parents() returns an empty set.
微妙ではありますが、2つの違いは重要です。
- 現在の要素で始まる
- 指定されたセレクターに一致するものが見つかるまで、DOMツリーを上に移動します。
- 返されたjQueryオブジェクトには0個または1個の要素が含まれています
- 親要素で始まる
- DOMツリーをドキュメントのルート要素に移動し、各祖先要素を一時的なコレクションに追加します。セレクターが指定されている場合は、セレクターに基づいてそのコレクションをフィルター処理します
- 返されたjQueryオブジェクトには、0個、1個、または複数の要素が含まれています
jQuery ドキュメントから
parent()
メソッドは、選択した要素の直接の親要素を返します。このメソッドは、DOMツリーを1レベルだけ上に行き来します。
parents()
メソッドを使用すると、DOMツリー内のこれらの要素の祖先を検索できます。指定されたセレクターから始めて上に移動します。
The **.parents()** and **.parent()** methods are almost similar, except that the latter only travels a single level up the DOM tree. Also, **$( "html" ).parent()** method returns a set containing document whereas **$( "html" ).parents()** returns an empty set.
[closest()][3]method returns the first ancestor of the selected element.An ancestor is a parent, grandparent, great-grandparent, and so on.
This method traverse upwards from the current element, all the way up to the document's root element (<html>), to find the first ancestor of DOM elements.
According to docs:
**closest()** method is similar to **parents()**, in that they both traverse up the DOM tree. The differences are as follows:
**closest()**
Begins with the current element
Travels up the DOM tree and returns the first (single) ancestor that matches the passed expression
The returned jQuery object contains zero or one element
**parents()**
Begins with the parent element
Travels up the DOM tree and returns all ancestors that matches the passed expression
The returned jQuery object contains zero or more than one element