我正在寻找一个javascript解决方案来查找html页面上的所有jQuery脚本,并用最新版本的jQuery替换代码。
原帖:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
替换为:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.js"></script>
答案 0 :(得分:2)
大多数人都在写DON&#T; T WORK! (示例已被删除。) jQuery().jquery
返回jQuery版本:
$("script[src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js']")
.attr("src","http://code.jquery.com/jquery-1.7.1.js");
console.log(jQuery().jquery);
这会将1.3.2
写入控制台。只是更改脚本的src并不能使新脚本实际运行!即使你给新脚本加载setTimeout
或加载事件的机会,它仍然不会改变版本。
您可以将脚本加载为AJAX查询并eval
。
jQuery.getScript("http://code.jquery.com/jquery-1.7.1.js");
但即使这样也不会产生你期望的结果。在页面下方对jQuery
或$
的任何引用都将指向旧的jQuery对象(版本1.3.2),而不是新的jQuery对象。因此,要使用1.7.2,只有在获得并eval
新脚本后,您才需要eval
所有脚本。因此,您必须找到另一种我害怕的方式。
编辑:我想你可以这样做:
jQuery.getScript("http://code.jquery.com/jquery-1.7.1.js", function () {
// Only after jQuery has run
jQuery.getScript('my-script-which-depends-on-1.7.js');
});
但它有点麻烦。
答案 1 :(得分:0)
var all = document.querySelectorAll('script[src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"]'),
script;
for(var i=0, len = all.length; i < len; i++){
script = all[i].cloneNode(false);
script.src = "http://code.jquery.com/jquery-1.7.1.js";
document.body.removeChild(all[i]);
document.body.appendChild(script);
}
这对我有用。您可以在this demo中看到它,但您必须在控制台中键入命令$.fn.jquery
才能看到版本实际已更改。
答案 2 :(得分:-1)
在记事本++或任何其他高级源代码编辑器等编辑器中打开项目源。在所有可用的源文件中搜索文本“1.3.2 / jquery.min.js”(通过递归搜索项目的根目录)。检查是否需要替换所有出现的字符串,然后使用find / replace工具将其更改为最新版本。