12

我希望能够检查 url 是否包含单词 catalogue。

这就是我正在尝试的...

 $(document).ready(function () {
        if (window.location.href.indexOf("catalogue"))
        {
            $("#trail").toggle();
        }
    }); 

该网站的网址可能是..

http://site.co.uk/catalogue/

或者

http://site.co.uk/catalogue/2/domestic-rainwater.html

等等

但它不起作用。有人可以指出我要去哪里错了吗?

4

3 回答 3

39

尝试:

if (window.location.href.indexOf("catalogue") > -1) { // etc

indexOf 不返回真/假,它返回搜索字符串在字符串中的位置;如果未找到,则为 -1。

于 2012-04-20T09:32:32.760 回答
3

鉴于 OP 已经在寻找布尔结果,另一种解决方案可能是:

if (~window.location.href.indexOf("catalogue")) {
    // do something
}

波浪号 ( ~) 是按位 NOT 运算符,执行以下操作:

~n == -(n+1)

简单来说,上面的公式将 -1 转换为 0,使其为假,其他任何东西都变为非零值,使其为真。因此,您可以将 的结果indexOf视为布尔值。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#(Bitwise_NOT)

于 2019-01-22T17:02:07.840 回答
0

您可以简单地使用includes()。请参考以下代码。

$(document).ready(function () {
    if(window.location.href.includes('catalogue')) {
        $("#trail").toggle();
    }
});
于 2020-04-09T12:20:34.607 回答