0

我有一个看起来像....

/page/sub/25/ --- edit page with ID @%
/page/sub  ---new page has no ID

URL 的最后一部分始终是 ID (如果不是新页面,则没有 ID)

我需要在 jQuery中获取 URL 的最后一部分并将其与 POST 一起发送。例如...

 $.ajax(
            {
                type: "POST",
                url: URLVar, 
                data: "site="+encodeURIComponent(JSON.stringify(site)),
                dataType: "json",
                },

URLVar如果它有 ID 将在哪里

page/update/25

如果不

/page/update

如何根据当前 URL 生成 URLVar 执行此操作?

4

3 回答 3

1

尝试

   var url = location.href;
    var id= url.substring(url.lastIndexOf('/') + 1);
于 2013-05-03T10:44:52.383 回答
1

试试这个:

var href = window.location.href;
var val = href.substr(href.lastIndexOf('sub') + 4).replace('/', '');
var URLVar = '';
if (val !== '') URLVar = 'page/update/' + val;
else URLVar = '/page/update';
alert(URLVar);
于 2013-05-03T10:51:25.103 回答
1

就我个人而言,我会使用正则表达式来搜索/字符串末尾的数字,然后是 a ;然后根据是否匹配形成更新 URL。您可以将该逻辑拆分为一个函数,如下所示:

function getUpdateUrl(url) {
    var matches = url.match(/(\d+)\/$/);
    return '/page/update' + (matches ? '/' + matches[1] : '');
}

然后,例如,您可以这样称呼它:

console.log(getUpdateUrl('/page/sub/')); // outputs /page/update
console.log(getUpdateUrl('/page/sub/25/')); // outputs /page/update/25

jsFiddle 演示

在你的情况下,你可能想打电话给getUpdateUrl(window.location.href).

于 2013-05-03T10:54:52.350 回答