找到函数调用的DOM位置

时间:2012-12-29 00:04:26

标签: javascript jquery

我知道在Jquery中你可以获取event.id如果我触发了一个事件(点击等)但是我如何获得一个简单函数调用的DOM位置

前:

<pre id="container2">...
  <script>
  FunctionCall();
  </script>
</pre>

我想从我的FunctionCall

中获取“container2”值

2 个答案:

答案 0 :(得分:1)

一般情况下,脚本不知道它的启动位置,因此没有通用的方法来执行您的要求。您必须事先找到一个您知道的容器div,或者插入您可以找到的已知对象。

在您的具体示例中,您可以这样做:

<pre id="container2">...
  <script>
  var fCntr = fCntr || 1;
  document.write('<div id="FunctionCallLocation' + fCntr + '"></div>');
  FunctionCall(fCntr++);
  </script>
</pre>

然后,在脚本中,您可以找到具有传递给它的id的DOM元素。

或者,您可以将document.write()放入函数本身,以便标记自己的位置:

var fCntr = 1;
function FunctionCall() {
    var myLoc = "FunctionCallLocation" + fCntr++;
    document.write('<div id="' + myLoc + '"></div>');
    var myLoc = document.getElementById(myLoc);
}

只有在页面加载时调用FunctionCall才能使用此精确代码,因此document.write()可以根据需要运行。

答案 1 :(得分:-1)

也许您可以尝试在脚本元素中添加id或类。所以像这样:

<pre id='container2'>
    <script id='location'>
        (function FunctionCall() {
            var container2 = document.getElementById('location').parentNode;
            container2.appendChild(document.createElement('p'));
        }())
    </script>
</pre>