【发布时间】:2019-07-03 01:06:28
【问题描述】:
我创建了一个函数来每秒检查网站的当前 url 并根据某个值字符串更改 HTML 元素中的元标记图像。我的代码很完美,但是我想让我的代码更具可读性 7 优化......所以我想把这段代码变成 switch 语句,但我现在无法自己弄清楚。任何帮助将不胜感激。代码如下:
// Variable declarations
var imgOgSrc = $('meta[property="og:image"]');
var twitterImgSrc = $('meta[name="twitter:image:src"]');
var currentUrl;
// Checks for current url & changes meta tags depending on slug value
function getCurrentUrl(){
currentUrl = window.location.href;
if(currentUrl.toLowerCase().indexOf('python') >= 0) {
imgOgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
twitterImgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
} else if (currentUrl.toLowerCase().indexOf('java') >= 0) {
imgOgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
twitterImgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
} else if (currentUrl.toLowerCase().indexOf('php') >= 0) {
imgOgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
twitterImgSrc.attr('content', 'http://carrieres.nameofwebsite.com/static/img/custom-img.jpg');
}
else {
imgOgSrc.attr('content', currentUrl);
twitterImgSrc.attr('content', currentUrl);
}
}
【问题讨论】:
-
then部分的区别在哪里?
-
对于您的用例,if 语句将是可行的方法。查看这个进行速度测试的答案:*.com/a/12259830/3684265
-
当您不寻找完全匹配时,使用 switch 毫无意义。
-
@ManuelAbascal,Nina 说在 if 语句的 attr 内容中的 URL 都是相同的。因此,如果这不是拼写错误,您只需要一个 if 和一个 else。
-
我会以不同的方式匹配 url,我会结合 ifs,因为它是每个中相同的内容。
标签: javascript jquery switch-statement