これは簡単な問題ではないかと感じていますが、うんざりしています。私がしようとしているのは、テーブル(またはどこか)のセルをクリックするたびに、各要素のparentNodeを表示し、基本的にDOMツリーを走査するように設定されています。私はelem.parentNodeを使う必要があると考えましたが、私は移動する部分についています。私の助けとなる助産師があれば、大いに感謝します。あなたは本当に、単に、どこでも任意の要素をクリックする場合DOMツリーを走査してparentNodeに関する情報を表示します
答えて
var element; //your clicked element
while(element.parentNode) {
//display, log or do what you want with element
element = element.parentNode;
}
var tables = document.getElementsByTagName('table');
for (var i=0,len=tables.length;i<len;++i){
tables[i].onclick = function(evt){
if (!evt) evt = window.event;
var element = evt.target || evt.srcElement;
while (element){
console.log(element);
element = element.parentNode;
}
};
}
は:
document.body.onclick = function(evt){
if (!evt) evt = window.event;
var element = evt.target || evt.srcElement;
while (element){
console.log(element);
element = element.parentNode;
}
};
私はIEで利用target'ませんでした 'currentTarget''のように、今日までそのイベントの性質を考えて、 。 IEにはいろいろなプロパティのようないとこがあるようだ。洞察に感謝します。 –
+1と良い仕事は10kに達する – qwertymk
'getElementsByTagName'は配列ではないオブジェクトを返すので、' Array.prototype.method.call'や[偽の配列を作成する]必要があります(http://stackoverflow.com/質問/ 4513162/document-getelementsbytagname-return-value)を使用して正しく反復処理します。 – rxgx
- 1. LinkedStackを走査してスタック全体を表示する
- 2. レイアウトエディタでプロパティ情報を表示してプロパティ情報を表示しますか?
- 3. DFSポスト順に倍/ツリーを走査する方法
- 4. ツリーの走査によって正しい結果が得られます
- 5. 古い情報を表示している情報ウィンドウ
- 6. ログイン情報に基づいてテーブル情報を表示する
- 7. ブランチはコンパイルエラーに関する情報を表示していません
- 8. データに関する情報を表示するPython関数
- 9. 情報を表示するウィジェットを探しています
- 10. FullCalendar dayClickに関するさまざまな情報を表示
- 11. 状態によってユーザー情報を表示しますか?
- 12. コールバックDownloadStringAsyncが完了して情報を表示します
- 13. WebDriverでDOM要素に関する情報を取得する
- 14. ボタンクリックに関する情報を表示するJava Webアプリケーション
- 15. csvファイルからの情報を使用してより多くの情報を表示する関数
- 16. テーブルに情報を表示しない
- 17. ログインしたユーザーにデータベースモデルの情報を表示します
- 18. Javaツリーの枝を走査してビットコードを生成する再帰的メソッドを実装する(ハフマン符号化)
- 19. メニューリストに情報を表示するエラー
- 20. ユーザー情報を表示するには?
- 21. iPhoneが空白の情報ウィンドウを表示しています
- 22. PHPでファイル情報を表示していますか?
- 23. Javaのバイナリ検索ツリーを走査中のStackOverflowError
- 24. 画像をクリックしてデータベースから情報を表示する
- 25. ツリービューを使用して情報を表示する
- 26. $ _GET ['id']を使用してデータベース情報を表示するPHP
- 27. Codeigniterにログインしているユーザーのプロフィール情報を表示しますか?
- 28. Javaスクリプトを使用してポップアップウィンドウ/ツールチップに関する情報を表示しますか?
- 29. 分離フォレストに関する情報を表示
- 30. Matlabガイド - ビデオに関する追加情報を表示
助けてくれてありがとう。しかし、素早い質問ですが、elementの代わりにelement.parentNodeを使用するのはなぜですか? – NinjaCode
DOMの各要素には、 'Document'であるルートノードを除いて' parentNode'があります。したがって、要素が長い間繰り返すのは、要素に 'parentNode'があるからです。 'while'ボディでは、要素の変数に現在の要素' parentNode'を割り当てていますので、 'parentNode'を持たない' Document'に達するまで、それを繰り返し実行することができます。 – singles