从自身获取对HTML DOM元素的引用

时间:2015-01-30 08:56:50

标签: javascript html dom this script-tag

如何使用纯javascript从脚本内部将脚本本身称为HTML DOM元素?

这样做的目的是相对于脚本操纵HTML DOM的其他元素。 像<script>this.previousSibling ... this.nextSibling ... </script>这样的东西。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在脚本标记上插入id,然后可以在DOM中找到它。

<script id="myscript">
    var s = document.getElementById("myscript");
</script>

您还可以在脚本中插入自己的DOM元素,然后找到:

<script>
    document.write('<div id="myDiv"></div>');
    var d = document.getElementById("myDiv");
</script>

如果脚本是外部脚本,并且您没有控制加载它的标记(因此您无法在其上添加ID),但您确实控制了从中加载的URL,那么您可以搜索脚本标记的所有脚本标记,其.src属性与脚本的来源匹配。

<script src="http://whatever.com/myscript.js"></script>

然后,在myscript.js中,您可以拥有以下代码:

function findScriptTag(href) {
    var tags = document.getElementsByTagName("script");
    for (var i = 0; i < tags.length; i++) {
        if (tags[i].src === href) {
            return tags[i];
        }
    }
    return null;
 }

 var s = findScriptTag("http://whatever.com/myscript.js");