我需要编写将使用文件撰写产生一些输出的脚本,但我需要知道它是装的是什么元素,例如:获取DOM元素其中,script标签
<p>
paragraph 1
<script src="test.js" type="text/javascript"></script>
</p>
我需要得到一个参考p标签...
谢谢!
我需要编写将使用文件撰写产生一些输出的脚本,但我需要知道它是装的是什么元素,例如:获取DOM元素其中,script标签
<p>
paragraph 1
<script src="test.js" type="text/javascript"></script>
</p>
我需要得到一个参考p标签...
谢谢!
在脚本运行的时候,该文件是仅部分地加载。所以,你的脚本元素将在文档中的最后一个节点:
var target = document.documentElement; // start at the root element
while (target.childNodes.length && target.lastChild.nodeType == 1) { // find last HTMLElement child node
target = target.lastChild;
}
// target is now the script element
alert(target.parentNode); // this is p
谢谢!这就是我所需要的 – Gustav
然而,这并非总是如此。在现有文档中插入新的'
为什么不直接在相关的p标签上放一个id?
<p id="desiredTag">
paragraph 1
<script src="test.js" type="text/javascript"></script>
</p>
然后,你可以做一个getElementById("desiredTag")
或$("#desiredTag")
。
如果您不能将id/class添加到父级,内容可能是动态的,否则它将是最简单的修复。 –
实施例:http://jsfiddle.net/NqN3S/
<p>
paragraph 1
<script id="test" type="text/javascript">
var scpt = document.getElementById("test");
var p = scpt.parentNode;
p.removeChild(scpt);
alert("old content: " + p.innerHTML);
p.innerHTML = "some new content";
</script>
</p>
在test.js任何文件撰写的呼叫将在准确位置脚本标记是产生它们的输出。除非你想在'段落1'文本之前插入文本... –
我知道,但我需要知道p标签的内容来写输出... – Gustav
在jquery中,像'$(“脚本[@ src ='test.js']“)。parent('p')'可以做到这一点。 –