【问题标题】:jquery and pathname ... again ! ;-)jquery 和路径名...再次! ;-)
【发布时间】:2011-12-03 04:18:56
【问题描述】:

最后我正在尝试我的网址。

如果 url 是以下之一,我只想获取“link1”(不带引号)。

http://www.site.com/link1

http://www.site.com/category/link1

http://www.site.com/myblog/category/link1

这就是我所拥有的,但只有两个第一次有效。

$(".ajaxed").live("click", function(event) {
        var post_slug = $(this)[0].pathname.substring($(this)[0].pathname.lastIndexOf("/")).replace(/^\//, "");
        alert(post_slug);
        $.address.crawlable(true).value(post_slug);
        $(this).load("ajax/",{slug:post_slug}, function(){
        });
        return false;
    });

我可以得到语法方面的帮助吗?非常感谢您的时间和帮助。

【问题讨论】:

  • 所有这些都应该根据您的代码工作。当您测试它时,您可能只是在最后一个 url 中有一个斜杠。 site.com/myblog/category/link1*/*
  • 你说得对! ;-) 谢谢

标签: substring pathname


【解决方案1】:

为什么你不能只拆分字符串并返回最后?

var post_slug_array = $(this)[0].pathname.split('/');
var post_slug = post_slug_array[post_slug_array.length - 1];

【讨论】:

    【解决方案2】:

    我已经尝试运行:

    t = "http://www.site.com/myblog/category/link1";
    t.substring(t.lastIndexOf("/")).replace(/^\//,"");
    console.log(t);
    

    我得到了link1。没错,不是吗?那么到底有什么问题呢?

    【讨论】:

      【解决方案3】:

      不确定你到底在追求什么,但修剪尾部的斜线。你想如何处理查询字符串?您当前的代码包括它们。

      http://jsfiddle.net/ppyJr/1/

      //test cases
      var paths = new Array(
          'http://www.site.com/link1', 
          'http://www.site.com/myblog/category/link1',
          'http://www.site.com/myblog/category/link1?querystring', 
          'http://www.site.com/myblog/category/link1/',
          'http://www.site.com/myblog/category/link1/?querystring'
      );
      
      for (var i = 0; i < paths.length; i++) {
          //trim trailing slash
          var x = paths[i].replace(/\/$/, "");
          //get trailing item
          var post_slug = x.substring(x.lastIndexOf("/") + 1, x.length);
          alert(post_slug);   
      }
      

      【讨论】:

      • 我更新了我的问题。我使用 AJAX 在我的主页上加载内容。它适用于前两个链接,但不适用于第三个。这就是问题所在。
      • 您的代码确实有效。因此,您为 pathname 返回的值不是您认为的那样,或者它有一个斜杠。 jsfiddle.net/tKJes.
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 2014-06-14
      • 2017-05-20
      • 2013-07-14
      • 1970-01-01
      • 2022-01-24
      • 2014-02-06
      相关资源
      最近更新 更多