Javascript jquery:将style.css的链接替换为game.css?
尝试替换整个页面的内容(有效)+同时使用查询替换指向style.css到game.css的链接Javascript jquery:将style.css的链接替换为game.css?,javascript,jquery,css,replace,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'
$.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);
})
以href属性'style.css'作为链接元素的目标,并将该元素的href属性替换为'game.css':
$("link[href='style.css']").attr({href: 'game.css'});
以href属性'style.css'作为链接元素的目标,并将该元素的href属性替换为'game.css':
$("link[href='style.css']").attr({href: 'game.css'});
您可以使用jQuery的
attr()
函数更改href
$("link[href=style.css]").attr('href', 'game.css');
您可能想使用更可靠的选择器,但这样就可以了。您可以使用jQuery的
attr()
函数来更改href
$("link[href=style.css]").attr('href', 'game.css');
你可能会想使用一个更坚固的选择器,但这样就可以了。给你,只是测试了一下,效果很好
<!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>
$(“link[href='/assets/frontend.css']”)attr('href','/assets/game.css');
为了回答您下面的评论,我使用了测试。
使用Console选项卡,我可以看到它首先尝试加载资产/frontend.css,运行JS,然后尝试加载资产/game.css
然后,我在firebug的HTML选项卡中检查了DOM,发现linkelements href属性已经更新
给你,刚刚测试了一下,效果不错
<!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>
$(“link[href='/assets/frontend.css']”)attr('href','/assets/game.css');
为了回答您下面的评论,我使用了测试。
使用Console选项卡,我可以看到它首先尝试加载资产/frontend.css,运行JS,然后尝试加载资产/game.css
然后,我在firebug的HTML选项卡中检查了DOM,发现linkelements href属性已经更新
href
其他答案中建议的属性替换由不同的浏览器处理不一致(即可能不会触发重新流动/重新渲染)。相反,必须删除原始样式元素,并在其位置插入具有所需href
的新元素。使用jQuery执行此操作的直观方法:
$('link[href$="style.css"]').replaceWith('<link href="game.css" ... ></link>');
$('link[href$=“style.css”]”)。替换为(“”);
href
其他答案中建议的属性替换由不同的浏览器处理不一致(即可能不会触发重新流动/重新渲染)。相反,必须删除原始样式元素,并在其位置插入具有所需href
的新元素。使用jQuery执行此操作的直观方法:
$('link[href$="style.css"]').replaceWith('<link href="game.css" ... ></link>');
$('link[href$=“style.css”]”)。替换为(“”);
好的,我自己试过了,但是没有用,我想用“/assets/game.css”替换这个,有什么想法吗?好的,我自己试过了,但是没有用,我想用“/assets/game.css”替换这个,有什么想法吗?上面的语法是正确的。确保jQuery选择器中的“style.css”与您尝试替换的链接的href匹配,attr()
调用中的“game.css”与您尝试将其更改为的样式表的地址匹配。另外,确保原始的链接
元素实际存在。在您的问题编辑中,似乎您已经删除了用于首先插入链接
元素的调用。上面的语法是正确的。确保jQuery选择器中的“style.css”与您尝试替换的链接的href匹配,attr()
调用中的“game.css”与您尝试将其更改为的样式表的地址匹配。另外,确保原始的链接
元素实际存在。在您的问题编辑中,似乎您已经删除了用于首先插入链接
元素的调用。对我也不起作用。您是如何测试它的?我已将其另存为.html。在尝试加载页面、查看源代码时,它仍然显示frontend.css。在浏览器中单击“查看源代码”将不会显示页面DOM的当前状态。它将向您显示首先从服务器中提取的文档。即,原始文件,没有使用JavaScript进行任何更改。我建议使用Chrome/Safari Web Inspector或Firefox的Firebug。Edd Morgan是正确的。仅查看源代码不会显示自初始加载DOM以来已更新的任何内容。我已经更新了答案,解释了我是如何为你测试的。我还用firebug检查了它,它似乎确实有效,thx用于完整的编写。我假设html实际上会被更改和重写,但情况似乎并非如此,尽管ineed试图加载游戏。css wich将有力地回答这个问题。我自己也不是一个查询编码员,谢谢你帮我解决这个问题。对我来说也不行。你是怎么测试的?我已将其另存为.html。在尝试加载页面、查看源代码时,它仍然显示frontend.css。在浏览器中单击“查看源代码”将不会显示页面DOM的当前状态。它将向您显示首先从服务器中提取的文档。即,原始文件,没有使用JavaScript进行任何更改。我建议使用Chrome/Safari Web Inspector或Firefox的Firebug。Edd Morgan是正确的。仅查看源代码不会显示自初始加载DOM以来已更新的任何内容。我已经更新了答案,解释了我是如何为你测试的。我还用firebug检查了它,它似乎确实有效,thx用于完整的编写。我假设html实际上会被更改和重写,但情况似乎并非如此,尽管ineed试图加载游戏。css wich将有力地回答这个问题。我自己也不是一个查询编码员,因为我帮助修复了这个问题。哪个浏览器处理的不一致?我刚刚在IE7、IE8、IE9、FF、Safari和Chrome中进行了测试。科迪邦尼:道听途说,但我一直认为IE7和IE8会把事情搞砸