2

特定の DOM 要素のコード行番号を見つけるにはどうすればよいですか?

JS変数にDOM要素があり、コード行番号とファイル名(パス)を返す関数が必要です

4

1 に答える 1

0

dom を操作できるため、これは不可能です。

2 つの理由:

  1. ブラウザーは、dom を解析するときに dom 要素を追加します (<tbody>ほとんどの人がそれを忘れているように) ブラウザーには、閉じられていないタグなどの自動修正もあるため、どの dom ノードがどの行にあるかを定義することは不可能です。
  2. JavaScriptを使用してdomノードを追加/追加/操作/削除できます。dom は静的ではありません。次のようなことをするとすぐに、次のようvar foo = document.createElement("div");に本文に追加します:document.body.firstChild.appendChild(foo);行番号は論理的に変更されます。

要素の親を変更するなど、ツリー内で dom ノードを移動することもできます。ツリーに追加せずに dom ノードを作成することもできますが、後のプロセスで追加することもできます。

簡単に言うと、インスペクターがインストールされていない限り、domノードがどの行にあるかを理解することはできません(ビジュアルブラウザーウィンドウでノードを右クリックして、クロムで「要素を検査」などを選択するなど)

すべてのブラウザは html / dom の解釈が異なるため、同じ結果のツリーを持つことは不可能です。

<script>できる唯一のことは、例外をスローするタグを追加することです。ほとんどのブラウザーでは、アラート ボックスを介して現在の行番号を表示できます。(それは「良い考えではない」と思うので、詳細には触れません)

于 2012-08-21T05:36:16.230 に答える