jquery:将style.css的链接替换为game.css?

时间:2012-07-16 22:19:43

标签: javascript jquery css replace

尝试替换整个页面的分数(作品)+还将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);
})

4 个答案:

答案 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

loading

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

enter image description here

答案 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>');