查找函数调用的DOM位置
Find the DOM location of a function call
我知道在Jquery中你可以得到事件。id,如果我触发了一个事件(点击等),但我如何获得一个简单的函数调用的DOM位置
,
<pre id="container2">...
<script>
FunctionCall();
</script>
</pre>
我想从我的FunctionCall内部获得"container2"值
一般来说,脚本不知道它是从哪里启动的,所以没有通用的方法来执行您所要求的操作。您必须找到一个您事先知道的容器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()
将按预期工作。
也许你可以尝试添加一个id或类的脚本元素。像这样:
<pre id='container2'>
<script id='location'>
(function FunctionCall() {
var container2 = document.getElementById('location').parentNode;
container2.appendChild(document.createElement('p'));
}())
</script>
</pre>
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 如何'剪切'DOM元素并将其显示在其他位置
- 在jquery中是否有任何方法或位置可以编写从Dom中删除页面后调用的方法
- 如何在不创建新元素的情况下修改 DOM 元素的位置
- 在插入符号位置获取DOM元素
- DOM数组中的位置
- 移动项在DOM中的位置
- 获取所选元素的位置,而不是 DOM 中元素的索引
- 返回的y值大于实际y位置[JS(无jQ)/DOM]
- 在 DOM 中添加新元素后,保留元素屏幕位置
- 从 DOM 中删除元素并将它们添加回原来的位置
- 使用 javascript 在 dom 树中向上或向下移动一个位置
- 如何对一组jQuery对象进行排序(但不是它们在DOM/Markup中的位置)
- 如何使用 DOM-Methods 在 JavaScript 调用的位置插入文本
- 如何将一个dom元素附加到另一个dom元件中,但在jquery中的第一个位置
- 我将如何获得角色的DOM位置
- 检测正在移动的DOM中的元素的位置
- Meteor:当页面刷新或其他页面位置时,如何保留dom操作
- 如何在不更改DOM的情况下获取javascript中的标记位置
- jQuery-如何将事件附加到DOM对象,并在不同的位置将处理程序绑定到它