【问题标题】:Incrementally increasing number in URL - JavaScriptURL 中逐渐增加的数字 - JavaScript
【发布时间】:2013-05-22 16:46:34
【问题描述】:

我有一个类似http://blog.com/post/1 的 URL,我需要一个函数来更新它末尾的数字,以进行分页。

到目前为止,我有:

window.location(document.URL++);

【问题讨论】:

  • 什么是 URL++ ? URL 是变量名吗?
  • 请添加更多详细信息。
  • @harsha 不,我试图使用 document.URL 来获取当前 URL。
  • 不确定为什么会被否决?

标签: javascript pagination


【解决方案1】:
var url  = window.location.href.split('/'),
    page = parseInt(url.pop(), 10);

// to go to next page, increment page number and join with URL

window.location.href = url.join('/') +'/'+ (++page);

FIDDLE

【讨论】:

    【解决方案2】:

    你可以这样做:

    var url = document.URL;
    var pagenumber = url.substr(url.length-1);
    window.location = '/post/'+pagenumber++;
    

    但这是一个hacky,你可以更好地做你的项目结构而不需要这样做。

    【讨论】:

    • @sanjaypoyzer 我不知道获取 url 上的数字是否是最好的方法。因为您的代码将被限制为这种格式。如果需要更改 url,则需要更改大量代码。你可以用这个处理一个数字。
    • @sanjaypoyzer 它不处理多于一位的页码。
    • 增加页码是个好主意,去同一页没用?
    • 啊,它不能处理多于一位的页面,这绝对是一个问题。没有这个故障能做到吗?
    • 把最坏的留到最后,location 不是函数!
    【解决方案3】:
    var url = window.location.href; /* e.g. http://blog.com/post/1 */
    var pagenumberString = url.match(/\d+/)[0];
    window.location.href = url.substr(0, url.length - pagenumberString.length)
                           + (parseInt(pagenumberString, 10) + 1);
    

    【讨论】:

    • 这似乎从 1 跳到 9 然后什么都不做。
    • @sanjaypoyzer 哎呀,小错误,忘记了正则表达式中的 +。它现在正在工作jsfiddle.net/Mellbourn/5NqsT
    【解决方案4】:

    使用书签增加 URL 中的最后一个数字(通常是页码):

    javascript:url=window.location.href;
    newurl=url.replace(/(\d+)([^0-9]*)$/, function(t,x,y){return parseInt(x,10)+1+y});
    window.location.href=newurl;
    

    【讨论】:

    • 请格式化您的代码以增加可读性。
    猜你喜欢
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    • 2016-08-20
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多