0

例えば、

<body>
    <div id="cant_set_id" class="cant_set_class">
    </div>
    <div>
        <script id="cant_set_id">
            thisDivElement = // How to get a handle to this parent div
        </script>
    </div>
</body>

ここでは、JavaScript に関する基本的な知識が少し欠けているように感じます。しかし、私は今までこれを必要としませんでした。どちらもIDを持たず、div +スクリプトがDOMのどこかに配置されている可能性がある場合、そのdiv内のスクリプトはどのようにしてdivへのハンドルを取得できますか?

4

1 に答える 1

1

これを行うにはいくつかの方法があります。

  1. script タグに ID を付けて、その ID とその親を検索します。
  2. スクリプト内で使用document.write()して、既知の ID を持つ div を作成し、それを探します。
  3. ドキュメント内のスクリプト タグを検索し、適切な.srcプロパティを持つものを見つけます。
  4. スクリプトは順番に解析/実行されるため (延期、非同期、または動的に挿入されていない場合)、現在実行中のスクリプト タグは、ドキュメント内でこれまでにdocument.getElementsByTagName("script")実行された最後のスクリプト タグです。このリストで。

オプション 1 の例:

<body>
    <div id="maybe_not" class="probably_not">
    </div>
    <div>
        <script id="myScript">
            var parentDiv = document.getElementById("myScript").parentNode;
        </script>
    </div>
</body>

オプション 1 の動作デモ: http://jsfiddle.net/jfriend00/LCuNq/

オプション 2 の例:

<body>
    <div id="maybe_not" class="probably_not">
    </div>
    <div>
        <script>
            document.write('<div id="myScriptDiv"></div>');
            var parentDiv = document.getElementById("myScriptDiv").parentNode;
        </script>
    </div>
</body>

オプション 2 の動作デモ: http://jsfiddle.net/jfriend00/8YwYN/

于 2013-02-13T20:58:44.650 に答える