我有一个网址https://example.com/fullimg.php?eid=1&pgno=&pdate=2022-12-24

我想创建一个下一步和上一步按钮.如果用户点击Next按钮,他将重定向到pgno=1,这意味着下一页.如果他再次点击Next按钮,他将被重定向到pgno=2,以此类推,如果他再次点击Next,他将被重定向至pgno=3,这里pdate是动态的,并且每天都在变化.

我试过这个

      let url = window.location.href;
      if (url.includes("pgno=")) {
        url = url.replace("pgno=", "pgno=2");
      } else if (url.includes("pgno=2")) {
        url = url.replace("pgno=", "pgno=3");
      }
      console.log(url);
      window.location.replace(url);

Also 我试过这个

      let url = window.location.href;
      if (url.includes("pgno=")) {
        url = url.replace("pgno=", "pgno=2");
      } 
      if (url.includes("pgno=2")) {
        url = url.replace("pgno=", "pgno=3");
      }
      console.log(url);
      window.location.replace(url);

对于两者,它只执行第一个条件,而不是第二个条件.单击下一步按钮后,它将转到pgno=2,但之后当我单击下一步时,它仍在重新加载并重定向到pgno=2

我怎么才能解决它呢?

我已经解决了这个问题,多亏了@Unmitiated

这就是功能,

    function Next2() {
      let params = new URLSearchParams(location.search);
      // get the value of pgno
      let pgno = +params.get('pgno');
      // check if pgno is less than or equal to 12
      if (pgno <= 11) {
        // go to next page
        params.set('pgno', pgno + 1);
        location.search = params;
      }
    }

下面是前面的函数

    function Prev1() {
      let params = new URLSearchParams(location.search);
      // get the value of pgno
      let pgno = +params.get('pgno');
      // check if pgno is greater than 1
      if (pgno > 1) {
        // go to previous page
        params.set('pgno', pgno - 1);
        location.search = params;
      }
    }

推荐答案

使用URLSearchParams可以简化查询字符串的处理.

let params = new URLSearchParams(location.search);
// go to next page
params.set('pgno', +params.get('pgno') + 1);
location.search = params;

Javascript相关问答推荐

当运行d3示例代码时,没有显示任何内容

将旋转的矩形zoom 到覆盖它所需的最小尺寸&S容器

如何用拉威尔惯性Vue依赖下拉?

v—自动完成不显示 Select 列表中的所有项目

加载背景图像时同步旋转不显示的问题

使用Java脚本导入gltf场景并创建边界框

使用auth.js保护API路由的Next.JS,FETCH()不起作用

Vaadin定制组件-保持对javascrip变量的访问

如何确保预订系统跨不同时区的日期时间处理一致?

如何使用基于promise (非事件emits 器)的方法来传输数据?

从逗号和破折号分隔的给定字符串中查找所有有效的星期几

无法重定向到Next.js中的动态URL

未捕获语法错误:Hello World中的令牌无效或意外

使用RxJS from Event和@ViewChild vs KeyUp事件和RxJS主题更改输入字段值

每隔3个项目交替显示,然后每1个项目交替显示

TypeORM QueryBuilder限制联接到一条记录

需要RTK-在ReactJS中查询多个组件的Mutations 数据

错误400:当我试图在React中使用put方法时,该字段是必需的

如何在函数组件中保留对计时器的引用

此上下文在JavaScript中