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

时间:2016-06-15 14:54:40

标签: 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">');

我想知道是否有办法从脚本中排除此功能。我可以在本地下载,我可以手动删除该文件,但问题是这第三部分定期更新此页面,增加了一吨新产品。 我在wordpress环境中工作,所以我的问题是:有没有办法用另一个脚本排除文件,所以我可以用旧的样式表替换它?

3 个答案:

答案 0 :(得分:1)

删除

jQuery('head').append('<link type="text/css" rel="stylesheet" href="pathToTheScript/style-products-v2.css">');

来自剧本。

答案 1 :(得分:1)

试试这个:

$(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/ (whatever) .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

旁注:
在你保留在正则表达式中的路径部分(你肯定不会改变的部分),你必须像/这样.\/逃脱:{{ 1}}。
您可以在此处测试正则表达式:https://regex101.com/#javascript

要明确
你必须使用CSS文件的路径!
不是注入它的.js文件的路径 ;)

答案 2 :(得分:1)

没有测试,但这样的事情应该有效:

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