尝试替换整个页面的分数(作品)+还将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知道如何实现这一目标吗? thx!
更新: 试过下面的建议还有问题,这就是我现在正在使用的(没有替换.css文件)
$.get('/games/14', function(data){
$("link[href='style.css']").attr({href: 'game.css'});
var $page = $(data);
$('body').empty().append($page);
})
答案 0 :(得分: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对其进行了测试。 使用Console选项卡,我可以看到它首先尝试加载 assets / frontend.css ,运行JS,然后尝试加载 assets / game.css 。
然后我在firebug的HTML选项卡中检查了DOM,并看到链接元素href属性已更新。
答案 1 :(得分:1)
使用href属性'style.css'定位link元素,并用'game.css'替换该元素的href属性:
$("link[href='style.css']").attr({href: 'game.css'});
答案 2 :(得分:1)
您可以使用jQuery的attr()
函数来更改href。
$("link[href=style.css]").attr('href', 'game.css');
你可能想要使用更加坚如磐石的选择器,但这样做。
答案 3 :(得分:1)
href
属性替换由不同的浏览器不一致地处理(即,可能不会触发重新流/重新渲染)。相反,必须删除原始样式元素,并且必须在其位置插入具有所需href
的新元素。使用jQuery直观的方法:
$('link[href$="style.css"]').replaceWith('<link href="game.css" ... ></link>');