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+script 可能位于 DOM 中的任何位置时,该 div 中的脚本如何获得该 div 的句柄?

4

1 回答 1

1

做这件事有很多种方法:

  1. 在脚本标签上放置一个 id,然后查找该 id 及其父级。
  2. 在脚本中使用document.write()from 编写一个具有已知 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 回答