使用javascript获取脚本所在的对象

时间:2012-08-09 07:15:00

标签: javascript jquery

有没有办法获取一个对象,或者它在脚本中的id是使用jQuery还是什么?

例如:

<div id="div1">
  <script type="text/javascript">
     var obj = ?? // this should be the "div1" div
  </script>
</div>

在这个例子中,obj应该等于&#34; div1&#34; (或对象本身)。

另一个:

<p id="paragraph_7">
  <script type="text/javascript">
     var obj = ?? // this should be the "paragraph_7" p
  </script>
</p>

在这个例子中,obj应该等于&#34; paragraph_7&#34; (或对象本身)。

如果我给出一个&#34; id&#34;到脚本标签,然后得到它的父母应该工作,但还有另一种方式吗?我并不总是能够知道<script> id。

提前致谢。

2 个答案:

答案 0 :(得分:2)

由于脚本是按顺序执行的,因此当前执行的脚本标记始终是页面上的最后一个脚本标记。因此,要获取脚本标记,您可以执行以下操作:

var scripts = document.getElementsByTagName( 'script' );
var thisScriptTag = scripts[ scripts.length - 1 ];

然后你可以使用它:

var obj = thisScriptTag.parentNode;

<小时/> 部分内容来自https://stackoverflow.com/a/3326554/1188942

答案 1 :(得分:1)

插入this code即可。基本上,当您查询脚本时,当前运行的脚本是当前位于DOM中的<scripts>列表中的最后一个脚本。

<script>
    //protect from the global scope using an immediate function
    (function() {

        //just being verbose
        var scripts, scriptIndex, thisScript, parent;

        scripts = document.getElementsByTagName('script');
        scriptIndex = scripts.length - 1;
        thisScript = scripts[scriptIndex];
        parent = thisScript.parentNode.id;

        //proof that we got the parent is to print the id
        document.write(parent);

    }());​

</script>