1

尝试替换整个页面的内容(作品)+还将style.css的链接替换为game.css,并带有查询

$.get('/games/14', function(data){  var $page = $(data);
    $('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
    //$('#layout').empty().append($page);
    $('body').empty().append($page);
})

无论我尝试什么,我似乎都无法将“style.css”更改为“game.css”,Jquery Guru 知道如何做到这一点?谢谢 !

更新:尝试了下面的建议仍然有问题,这就是我现在正在使用的(不替换 .css 文件)

  $.get('/games/14', function(data){
$("link[href='style.css']").attr({href: 'game.css'});
var $page = $(data);
$('body').empty().append($page);
})
4

4 回答 4

2

来吧,刚刚测试了这个,它工作。

<!DOCTYPE HTML>
<html>
<head>
    <script src="jquery-1.7.2.min.js"></script>
    <link href="/assets/frontend.css" media="screen" rel="stylesheet" type="text/css" />
</head>
<body>
    <script>
        $("link[href='/assets/frontend.css']").attr('href', '/assets/game.css');
    </script>
</body>
</html>

为了回答您在下面的评论,我使用Firebug对其进行了测试。使用控制台选项卡,我可以看到它首先尝试加载assets/frontend.css,运行 JS,然后尝试加载assets/game.css

加载

然后,我在 firebug 的 HTML 选项卡中检查了 DOM,发现链接元素的 href 属性已更新。

在此处输入图像描述

于 2012-07-16T22:58:55.350 回答
1

使用 href 属性“style.css”定位链接元素,并将该元素的 href 属性替换为“game.css”:

$("link[href='style.css']").attr({href: 'game.css'});
于 2012-07-16T22:24:41.527 回答
1

您可以使用 jQuery 的attr()函数来更改 href。

$("link[href=style.css]").attr('href', 'game.css');

您可能会想要使用一个更坚如磐石的选择器,但这样就可以了。

于 2012-07-16T22:25:41.150 回答
1

href其他答案中建议的属性替换由不同的浏览器不一致地处理(即可能不会触发重新流动/重新渲染)。相反,必须删除原始样式元素,并href在其位置插入具有所需样式的新元素。使用 jQuery 的一种直观方式:

$('link[href$="style.css"]').replaceWith('<link href="game.css" ... ></link>');
于 2012-07-16T23:08:14.810 回答