我需要使用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还要替换数字。我想我需要这样的东西:
.replace("styles*MQ.css", "styles400MQ.css");
提示:
答案 0 :(得分:4)
而不是.replace("MQ.css", "MQ.css");
尝试类似
.replace(/\d*MQ\.css/, "MQ.css");
.replace(/\d*MQ\.css/, "400MQ.css");
答案 1 :(得分:0)
$('style:contains("MQ")').text(function () {
return $(this).text().split('/')[0]+"/400MQ.css";
});
答案 2 :(得分:0)
我会用
$('style:contains("MQ")').text(function (pos, value) {
return value.replace(/styles(400|)MQ\.css/, "styles800MQ.css");
});
改变预期表达式的相同解决方案(400,800,&#39;&#39;)