ノードの書き込みを取得
1.すべての兄弟要素を取得
function prevAll(node) {
//upすべての兄弟ノード
let prev = node.previousSibling,
//兄弟タグのノードを格納するスペースをあらかじめ作っておく
result = [];
//brotherがnullでない場合.兄弟ノードタイプ===1,
while (prev !== null) {
if (prev.nodeType === 1) {
//空間ストレージのタグに格納されている兄弟タグを取得する
result.unshift(prev);
}
//兄弟を取得し、兄弟要素の兄弟に移動する
prev = prev.previousSibling;
}
return result;
}
2.すべての兄弟要素を取得
function nextAll(node) {
let result = [],
//兄弟のすべてのノードを取得する
next = node.nextSibling;
while (next !== null) {
//兄弟ノードのノードタイプが===1ボックスに保存する
next.nodeType === 1 ? result.push(next) : null;
//現在見つかっている兄弟要素のすべてのノードを検索する
next = next.nextSibling;
}
return result;
}
3.弟と兄の要素をすべてゲット
function siblings(node) {
return prevAll(node).concat(nextAll(node));
}
4.すべての要素のインデックスを取得します。
function index(node) {
//上記のすべての要素ノードは、使用されるノードの長さに正確に対応するように接続され、allは対応するインデックスである。
return prevAll(node).length;
}
JQには他にもいくつかのメソッドがあります:
- prev は前の兄弟要素ノードを取得します。
- next次の兄弟要素ノードを取得します。
- prevすべての兄弟要素ノード
- next すべての兄弟要素ノード
- indexインデックス取得
- 兄弟要素ノードを取得します。
- childrenはすべての要素の子を取得します。