如何用javascript查找/替换html?

时间:2011-12-01 13:42:41

标签: javascript jquery html dom

我正在寻找一个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>

3 个答案:

答案 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工具将其更改为最新版本。