【问题标题】:go to link on button click - jQuery点击按钮转到链接 - jQuery
【发布时间】:2011-06-24 01:59:42
【问题描述】:

我有一个脚本如下

$('.button1').click(function() {
    document.location.href=$(this).attr('id');
});

button1 具有可变的唯一 ID。点击时,页面必须重定向到 URL“www.example.com/index.php?id=buttonid”,但现在页面只重定向到“button id”。

我想在当前 url 之前添加字符串“www.example.com/index.php?id=”。我怎样才能做到这一点?

【问题讨论】:

    标签: jquery dynamic-data response.redirect


    【解决方案1】:
    $('.button1').click(function() {
       window.location = "www.example.com/index.php?id=" + this.id;
    });
    

    首先使用window.location 更好,因为根据规范document.location 值是只读的,可能会导致您在较旧/不同的浏览器中感到头疼。查看备注@MDC DOM document.location page

    第二个 - 使用 attr jQuery 方法获取 id 是一个不好的做法 - 你应该使用直接原生 DOM 访问器 this.id 因为分配给 this 的值是正常的 DOM 元素。

    【讨论】:

    • 非常感谢我的朋友... :)
    • +1 是第一个建议 window.location 和 this.id 的人,没有它们,我很快就回答了 ;)
    【解决方案2】:
    $('.button1').click(function() {
       document.location.href='/index.php?id=' + $(this).attr('id');
    });
    

    【讨论】:

      【解决方案3】:

      您需要指定域:

       $('.button1').click(function() {
         window.location = 'www.example.com/index.php?id=' + this.id;
       });
      

      【讨论】:

      • href 是不必要的,请查看我的答案以了解有关可以做得更好的事情的更多信息
      • @Tom Tu:不错的建议,更新了代码。您需要考虑否决票,无论如何都没有错。
      【解决方案4】:

      为什么不把第二行改为

      document.location.href="www.example.com/index.php?id=" + $(this).attr('id');
      

      【讨论】:

      • @blasteralfred 查看我的回答,了解更多提示和良好做法
      【解决方案5】:

      您可以使用window.location.href 获取当前网址,但我认为您将需要 jQuery 查询插件来操作查询字符串:http://plugins.jquery.com/project/query-object

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-12
        • 2012-12-31
        • 1970-01-01
        相关资源
        最近更新 更多