如何获取脚本的父div?

时间:2013-02-13 20:55:58

标签: javascript html dom

例如,

<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的句柄?

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点:

  1. 在脚本代码上添加一个id,然后查找该ID及其父代。
  2. 在脚本中使用document.write()来编写具有已知ID的div,然后查找它。
  3. 在文档中搜索脚本标记,找到具有适当.src属性的脚本标记。
  4. 由于脚本按顺序解析/执行(如果不是延迟或异步或动态插入),当前正在执行的脚本标记是文档中的最后一个,如果你执行document.getElementsByTagName("script"),则当前执行执行脚本标记将是此列表中的最后一个。
  5. 选项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/