【问题标题】:jquery how to check if url contains word?jquery如何检查url是否包含单词?
【发布时间】:2020-04-09 20:20:34
【问题描述】:

我希望能够检查 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

等等

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

【问题讨论】:

标签: javascript jquery


【解决方案1】:

试试:

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

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

【讨论】:

  • != -1 会更好indexOf
  • @Vega 我不确定我是否同意它好多更好。结果是相同的 > -1 需要少 1 个字符。如果该代码位于每天有 100 万个请求的站点上,那将节省大量带宽! :-)
【解决方案2】:

鉴于 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)

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2011-11-08
      • 2017-09-09
      相关资源
      最近更新 更多