我想从它指向的外部脚本中更改标记的id。这样做的正确方法是什么?
这是我的脚本标记:
<script id="ID1" type="text/javascript" src="PATH_TO_EXTERNAL_JS"></script>
以下是我在外部脚本中尝试做的事情:
var sessionID = generateSessionID();
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length - 1];
script.id = script.id + "_" + sessionID;
但是,当我查看firebug中的实时DOM树时,我看到DOM中引用了2个脚本。一个具有原始ID,另一个具有新ID。
谢谢!
答案 0 :(得分:1)
script.setAttribute("id", script.id + "_" + sessionID);
答案 1 :(得分:0)
我认为你应该修改你的代码,有点像这样:
var i = 0
var sessionID = generateSessionID();
var scripts = document.getElementsByTagName('script');
var script = null;
for (i = 0; i < scripts.length; i++)
if (scripts[i].src.toString() == 'PATH_TO_EXTERNAL_JS'){
script = scripts[i];
break;
}
if (script)
script.id = script.id + "_" + sessionID;
换句话说。获取所有SCRIPT元素,遍历此集合以查找具有某些已知属性的元素(在此示例中为src),如果找到它,则设置它的新id。
答案 2 :(得分:0)
如果您要这样做,则需要删除旧脚本。虽然迈克刘易斯回答有更好的方法。
document.removeChild(originalScript)