获取脚本标记所在的DOM元素

时间:2011-08-03 20:12:13

标签: javascript

我需要编写一个脚本,它将使用document.write来生成一些输出,但我需要知道它包含哪个元素,例如:

<p>
    paragraph 1
    <script src="test.js" type="text/javascript"></script>
</p>

我需要获得对p标签的引用......

谢谢!

3 个答案:

答案 0 :(得分:11)

在运行脚本时,文档仅部分加载。因此,您的脚本元素将是文档中的最后一个节点:

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

答案 1 :(得分:8)

示例: 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>

答案 2 :(得分:-1)

为什么不在相关的p标签上添加id?

<p id="desiredTag">
    paragraph 1
    <script src="test.js" type="text/javascript"></script>
</p>

然后,您可以执行getElementById("desiredTag")$("#desiredTag")