我知道这已经讨论过了很多。我很确定我使用了正确的运算符优先级,但仍然没有得到理想的结果。
在下面的代码中,我试图查看正文是否具有“行业”类,如果window.location.href
等于||
运算符分隔的任何路径。如果“行业”类存在且window.location.href
不等于列出的任何路径,那么我想更改位置。
当我进入路径时,发生了什么
http://blahblah.com/#leisure
它仍在执行if
语句中的代码并将位置更改为https://blahblah.com/#consumer
我有一种感觉,我的解释是错综复杂的。遗憾。
var indDescObj = {
aec: "Connecting with <br> customers who build",
b2b: "Connecting <br> business to business",
consumer: "Connecting <br> with shoppers <br> everywhere they buy",
leisure: "Connecting with <br> customers when <br> they're at play"
}
var $indDescription = $('.industry-description');
var $indNavLinks = $('.industry-nav__link');
$(document).ready(function() {
var path = 'http://blahblah.com/'
if ( $('body').hasClass('industries') &&
( (window.location.href !== path + '#consumer') ||
(window.location.href !== path + '#b2b') ||
(window.location.href !== path + '#leisure') ||
(window.location.href !== path +'#aec') )
) {
$(".industry-nav__link[data-filter='.consumer']").click();
window.location.href = "http://blahblah.com/#consumer";
};
var hashPath = "." + window.location.hashPath.slice(1);
var pathObjKey = path.slice(1);
$(".industry-nav__link[data-filter='" + hash + "']").addClass("is-active")
$('.industry-description').append(indDescObj[pathObjKey])
})
答案 0 :(得分:0)
我认为您应该使用||
代替&&
。换句话说,你说 body有类,位置不是A,位置不是B等,然后做点什么。
答案 1 :(得分:0)
正如其他人已经指出的那样,问题在于你!和||组合。解决方案是替换||与&amp;&amp;。
不是比较每个值,而是可以动态地将它放在一个数组中进行比较。
例如:
if (<firstcondition> && $.inArray(window.location.href, ['<value1>', '<value2>', '<value3>', '<value4>']) == -1) {
//body
}
通过此link了解其工作原理。