我对Javascript和Jquery还是陌生的,但无法弄清楚我在做什么错。我只想检查用户是否在3个URL中。我只想检查用户是否在ABOUT US,MEMSTAFF TEAM或CAREERS部分中。这就对了。我以为如果我只是使用OR(||)运算符,那应该可以工作。我在做什么错了?
<script type="text/javascript">
$(document).ready(function() {
// Check if any of these relative URLS are true
if(window.location.href.indexOf("/about-us" || "/memstaff-team" || "/careers") > -1) {
// Alert me if I am in one of the MAIN sections
alert("Your are in one of the MAIN sections");
}
});
</script>
答案 0 :(得分:2)
测试
if (window.location.href.indexOf("/about-us" || "/memstaff-team" || "/careers") > -1)
等效于
temp = "/about-us" || "/memstaff-team" || "/careers";
if (window.location.href.indexOf(temp) > -1)
由于||
运算符仅返回第一个真实值,因此它实际上在进行temp = "/about-us"
并为此进行测试。 “ OR”表达式不会自动分布,您需要显式进行。
if (window.location.href.indexOf("/about-us") > -1 ||
window.location.href.indexOf("/memstaff-team") > -1 ||
window.location.href.indexOf("/careers") > -1)
但是更简单的方法是使用正则表达式:
if (window.location.href.match(/\/(about-us|memstaff-team|careers)/))
答案 1 :(得分:0)
这是另一种方法:
const urls = ["/about-us", "/memstaff-team", "/careers"];
if (urls.some(url => window.location.href.indexOf(url) > -1)) {
alert("...");
}