关于javascript:如何获取脚本的父div?

How can I get the parent div of a script?

本问题已经有最佳答案,请猛点这里访问。

例如,

1
2
3
4
5
6
7
8
9
<body>
   
   
   
        <script id="cant_set_id">
            thisDivElement = // How to get a handle to this parent div
       
   
</body>

我觉得我在这里缺少了一些基本的JavaScript知识;但是,直到现在我才需要这些知识。如果DIV中的脚本都没有ID,并且DIV+脚本可能位于DOM的任何位置,那么该DIV中的脚本如何获得DIV的句柄?


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

  • 在脚本标记上放置一个ID,然后查找该ID及其父级。
  • 在脚本中使用document.write()编写一个具有已知ID的DIV,然后查找它。
  • 在文档中搜索脚本标记,并找到具有适当.src属性的脚本标记。
  • 由于脚本是按顺序解析/执行的(如果不是延迟、异步或动态插入),所以当前执行的脚本标记是文档中迄今为止最后一个标记,如果执行document.getElementsByTagName("script"),则当前执行的脚本标记将是此列表中最后一个。
  • 选项1示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <body>
       
       
       
            <script id="myScript">
                var parentDiv = document.getElementById("myScript").parentNode;
           
       
    </body>

    选项1的工作演示:http://jsfiddle.net/jfriend00/lcunq/

    选项2示例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <body>
       
       
       
           
                document.write('');
                var parentDiv = document.getElementById("myScriptDiv").parentNode;
           
       
    </body>

    选项2的工作演示:http://jsfiddle.net/jfriend00/8ywyn/