JQuery и путь ... снова!;-) - PullRequest
       40

JQuery и путь ... снова!;-)

0 голосов
/ 03 декабря 2011

В конце я пытаюсь добавить мой URL.

Если URL-адрес является одним из следующих, я хочу получить только "link1" (без кавычек).

http://www.site.com/link1

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

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

Это то, что у меня есть, но работают только 2 первых.

$(".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;
    });

Могу ли я получить помощь по синтаксису, пожалуйста? Большое спасибо за ваше время и помощь.

Ответы [ 3 ]

0 голосов
/ 03 декабря 2011

Я попробовал запустить:

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

и я получил link1.Это верно, не так ли?так в чем проблема на земле?

0 голосов
/ 03 декабря 2011

Не знаю точно, что вы ищете, но обрежьте косую черту. Как вы хотите обрабатывать строки запросов? Ваш текущий код включает их.

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);   
}
0 голосов
/ 03 декабря 2011

Почему вы не можете просто разбить строку и вернуть самый конец?

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