[解決済み] 子ノードのインデックスを取得する
2022-04-24 10:53:07
質問
ストレートアップのjavascript(つまりjQueryなどの拡張なし)で、すべての子ノードを反復して比較することなく、親ノード内の子ノードのインデックスを決定する方法はありますか?
例.
var child = document.getElementById('my_element');
var parent = child.parentNode;
var childNodes = parent.childNodes;
var count = childNodes.length;
var child_index;
for (var i = 0; i < count; ++i) {
if (child === childNodes[i]) {
child_index = i;
break;
}
}
子供のインデックスを決定する良い方法はないでしょうか?
どのように解決するのですか?
を使用することができます。
previousSibling
プロパティを使用して、兄弟姉妹を繰り返し処理し、最終的に
null
で、何人の兄弟に遭遇したかをカウントします。
var i = 0;
while( (child = child.previousSibling) != null )
i++;
//at the end i will contain the index.
なお、Javaのような言語では
getPreviousSibling()
関数がありますが、JSではこれがプロパティになっています。
previousSibling
.
使用方法 前要素の兄弟 または ネクストエレメントシブリング を使えば、テキストとコメントのノードを無視することができます。
関連
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで現在のURLを取得する?
-
[解決済み] JavaScriptで現在の日付を取得するには?
-
[解決済み] JavaScriptでクエリ文字列の値を取得するにはどうすればよいですか?
-
[解決済み] jQueryを使ってドロップダウンリスト(セレクトボックス)から選択されたテキストを取得する
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] JavaScriptでドロップダウンリストの選択値を取得する
-
[解決済み] JavaScript で DOM ノードのすべての子要素を削除する
-
[解決済み] JavaScriptやデバッグでDOMノード上のイベントリスナーを見つけるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
Vueにシンプルなメモ帳機能を実装
-
Vueのフォームイベントのデータバインディングの説明
-
[解決済み】最大呼び出しスタックサイズ超過エラー
-
[解決済み] テスト
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】awaitは非同期関数でのみ有効です。
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
nodejs unhandledPromiseRejectionWarning メッセージ