我需要使用 jQuery 在字符串中进行动态替换。我已经阅读了有关在选择器中使用通配符的信息,但我希望它在一个字符串中。
考虑到这个 HTML:
<style type="text/css">@import url('css/another.css');</style>
<style type="text/css">@import url('css/stylesMQ.css');</style>
我在 jQuery 中有这个功能:
function adjustStyle(width) {
width = parseInt(width);
if (width < 701) {
$('style:contains("MQ")').text(function () {
return $(this).text().replace("MQ.css", "400MQ.css");
});
} else if ((width >= 701) && (width < 900)) {
$('style:contains("MQ")').text(function () {
return $(this).text().replace("MQ.css", "800MQ.css");
});
} else {
$('style:contains("MQ")').text(function () {
return $(this).text().replace("MQ.css", "MQ.css");
});
}
}
此函数是整个 jQuery 的一部分,它根据屏幕大小更改 @imported css。
错误
它可以工作,但是当我开始使用屏幕尺寸时,我会得到类似的东西:
@import url('css/styles800800800800400400400400400400400400400400MQ.css');
我不知道如何告诉 jQuery 也替换 number。
我想我需要类似的东西:
.replace("styles*MQ.css", "styles400MQ.css");
提示:
- 我没有使用媒体查询,因为我的客户是 Fred Flinstone,他使用 IE7 并且不想要 pollyfills,因为额外的加载时间并且认为它们是恶魔。
- 页面中还有其他 @imported CSS
- 我不知道 CSS 的整个路径,也不知道文件夹,只知道名称(这就是我想要替换而不是写新 CSS 的相对路径位置的原因。)
- 我可以更改任何这些 CSS 的名称。