Jquery - 对多个路径使用top.location.pathname?

时间:2018-03-09 22:53:57

标签: jquery html web

如果url位于几个不同的路径上,特别是索引和根目录,我试图运行jquery函数。现在,我有

"if (top.location.pathname === '/','index.html')
{ 
function happens
}

如果我在顶部只有一个路径名但我不知道有两个路径名,那么它是有效的。我也可能会做相反的事情,比如:

"if (!top.location.pathname === '/','index.html')
{ 
function happens
}

无法在网上找到解释此内容的任何地方!我大部分都是自学成才,所以如果这很容易就可以了,对我来说很轻松,哈哈。

1 个答案:

答案 0 :(得分:0)

我对您的语法不完全确定,用逗号分隔'/''index.html'似乎没必要,您可以'/index.html'

关于实际问题,现在是使用逻辑 OR 运算符的好时机,在Javascript中它通常用作||

所以作为一个简单的例子:

if (true || false) // happens, because one is true
if (false || false) // doesn't happen, nothing is true
if (false || false || false || false || true) // happens, because one is true

在你的情况下,我想它会是:

if (top.location.pathname === '/index.html' || top.location.pathname === '/about.html')

我只是以about.html为例,你明白了。如果这些陈述中至少有一个为真,则执行该条件。

解决您的第二点,(!top.location.pathname === '/','index.html')将无法正常工作。

为什么?

因为!否定了它附加的变量的值。在这种情况下,您要说!top.location.pathname,即说出"取路径名,并将其否定,并将其与/index.html进行比较。在这种情况下,这意味着条件将沿着false === '/index.html'

你最好否定操作员本身:(!top.location.pathname !== '/index.html')

如果您想确保路径名不是您的任何选项,您可以使用逻辑AND(&&)运算符。

// only matches if the pathname is neither index.html or about.html
if (top.location.pathname !== '/index.html' && top.location.pathname !== '/about.html')