排除从jQuery外部文件追加的外部样式表

排除从jQuery外部文件追加的外部样式表,jquery,wordpress,external,stylesheet,Jquery,Wordpress,External,Stylesheet,我正在为一个客户建立一个网站,在某个时候我不得不添加一个第三部分jQuery文件,以便向我的页面添加一些产品。问题是这个脚本正是以这种方式向我的文件中添加了他自己的样式表: jQuery.ajaxSetup({ async: false }); jQuery('head').append('<link type="text/css" rel="stylesheet" href="http://pathToTheScript/style-products-v2.css">')

我正在为一个客户建立一个网站,在某个时候我不得不添加一个第三部分jQuery文件,以便向我的页面添加一些产品。问题是这个脚本正是以这种方式向我的文件中添加了他自己的样式表:

jQuery.ajaxSetup({
    async: false
});

jQuery('head').append('<link type="text/css" rel="stylesheet" href="http://pathToTheScript/style-products-v2.css">');
jQuery.ajaxSetup({
异步:false
});
jQuery('head')。追加('');
我想知道是否有办法将此函数从脚本中排除。我可以在本地下载,也可以手动删除该文件,但问题是第三部分定期更新此页面,添加了大量新产品。 我在wordpress环境中工作,所以我的问题是:有没有办法用另一个脚本排除该文件,以便用我的旧样式表替换它?

删除

jQuery('head').append('<link type="text/css" rel="stylesheet" href="pathToTheScript/style-products-v2.css">');
jQuery('head')。追加('');
从脚本中删除。

删除

jQuery('head').append('<link type="text/css" rel="stylesheet" href="pathToTheScript/style-products-v2.css">');
jQuery('head')。追加('');
从脚本中。

尝试以下操作:

$(document).ready(function(){
    $("link").each(function(){
        if($(this).attr("href")=="pathToTheScript/style-products-v2.css"){
            $(this).remove();
        }
    });
});



编辑
因为此链接是由另一个脚本插入的…
.css文件的文件名可能在将来的第三方脚本更新中更改

您应该使用正则表达式以元素为目标执行此操作:

$(document).ready(function(){
    $("link").each(function(){
        if($(this).attr("href")==/http:\/\/domain\.com\/pathToTheScript\/.*\.css/){
            $(this).remove();
        }
    });
});
这将删除href值为:
http://domain.com/pathToTheScript/ (随便)。css

示例:
http://domain.com/pathToTheScript/style-products-v2.css

http://domain.com/pathToTheScript/style-products-v3.css

http://domain.com/pathToTheScript/improved-style.css

http://domain.com/pathToTheScript/anything.css

旁注:
在您保留在正则表达式中的路径部分(您确定不会更改的部分),您必须像这样转义
/
\/
,以及这样转义:
\.

您可以在此处测试正则表达式:

我想说清楚
您必须使用CSS文件的路径
不是注入它的.js文件的路径。
;)

试试这个:

$(document).ready(function(){
    $("link").each(function(){
        if($(this).attr("href")=="pathToTheScript/style-products-v2.css"){
            $(this).remove();
        }
    });
});



编辑
因为此链接是由另一个脚本插入的…
.css文件的文件名可能在将来的第三方脚本更新中更改

您应该使用正则表达式以元素为目标执行此操作:

$(document).ready(function(){
    $("link").each(function(){
        if($(this).attr("href")==/http:\/\/domain\.com\/pathToTheScript\/.*\.css/){
            $(this).remove();
        }
    });
});
这将删除href值为:
http://domain.com/pathToTheScript/ (随便)。css

示例:
http://domain.com/pathToTheScript/style-products-v2.css

http://domain.com/pathToTheScript/style-products-v3.css

http://domain.com/pathToTheScript/improved-style.css

http://domain.com/pathToTheScript/anything.css

旁注:
在您保留在正则表达式中的路径部分(您确定不会更改的部分),您必须像这样转义
/
\/
,以及这样转义:
\.

您可以在此处测试正则表达式:

我想说清楚
您必须使用CSS文件的路径
不是注入它的.js文件的路径。

;)

没有进行测试,但类似这样的测试应该会起作用:

$(document).ready(function() {
    $('link[href="pathToTheScript/style-products-v2.css"]').remove();
});

没有测试,但类似这样的东西应该可以工作:

$(document).ready(function() {
    $('link[href="pathToTheScript/style-products-v2.css"]').remove();
});

我解释说我不能在本地修改脚本,因为第三方公司会经常更新脚本我解释说我不能在本地修改脚本,因为第三方公司会经常更新脚本它在另一个脚本中工作吗?我的意思是,我将把这段代码添加到我的页脚中的另一个脚本中(我正在运行我在页面中间显示的脚本,就在包含模块的DIV之前)。所以我的问题是,我怎样才能钩住这样一个外部脚本:Grills myscript-v2.js“>函数{doSomethingWith#myproduct是的,此代码块将在文档就绪状态下运行…即使它位于外部js中。它«targets»基于其href值的链接元素。将来可能出现的唯一问题是确保此css文件名不会在脚本的未来更新中更改…;)实际上,它是第一次工作代码的版本,带有。每个函数的链接!谢谢你的帮助,你的第一条线索是正确的!我以这种方式更新了…所以答案对其他人来说是清楚的。;)它在另一个脚本中工作吗?我的意思是我将在我的页脚的另一个脚本中添加这段代码(我正在运行我在页面中间显示的脚本,就在包含模块的div之前)。所以我的问题是如何钩住一个外部脚本:GrrsMyScript -v2.js“>函数。{doSomethingWith#myproduct Yes,此代码块将在文档就绪时运行…即使它位于外部js中。它«targets»基于其href值的链接元素。将来可能出现的唯一问题是确保此css文件名不会在脚本将来的更新中更改…;)事实上,它正在使用您的第一个版本的代码,即带有链接的.each函数的代码!谢谢您的帮助,您的第一条线索是正确的!我以这种方式更新了…因此其他人会清楚地知道答案。;)太好了!唯一的问题是我以这种方式添加了一个外部脚本:(在页面调用product.php的中间)Grills很棒!唯一的问题是我以这种方式添加了一个外部脚本:(在页面调用product.php的中间)Grills