jQuery在更改之前获取href初始值一次

Posted

技术标签:

【中文标题】jQuery在更改之前获取href初始值一次【英文标题】:jQuery get href initial value once before it changes 【发布时间】:2011-07-25 14:02:09 【问题描述】:

在我的应用程序中,我有一个 ajax 调用,成功后它会将一些数据附加到现有的链接 href。

这很好用。问题是,如果我想再次运行 ajax 调用并在成功时附加一些不同的数据,它会从上一个 ajax 调用中获取 href 值 + 新值,然后再添加新数据。

我希望它在附加数据之前将数据添加到初始 href 值。

以下是我的代码: (出于测试目的,我每次都会附加示例样本值)

        //get next page link value, so we can add filter to url
    var next_link = $("a.next").attr("href");

$.ajax(
        type: "POST",
        url: "ajax_calls.php",
        data: "instrument="+selected.val()+"&filter=true",
        success: function(listing)$("#listings").html(listing);

$("a.next").attr("href", next_link + '&field=x');

,
        error: function()alert(3);$("#error").text("Could not retrieve posts").fadeIn(300).delay(900).fadeOut(300)
    );

对此的任何帮助将不胜感激。 谢谢

【问题讨论】:

【参考方案1】:

使用jQuery的.data方法怎么样?

$('#change').click(function()
    var newData = Math.random() * 1000; // fake new data
    $('a').each(function(i,e)
        var oldHref = $(this).data('oldHref');
        if (!oldHref)
            var oldHref = $(this).attr('href');
            $(this).data('oldHref',oldHref);
        
        $(this).attr('href',oldHref + '#' + newData);
    );
);

<a href="http://google.com">Hello, world!</a><br />
<input type="button" id="change" value="Change HREF" />

example

将旧值存储在数据元素中,然后在每次新更改之前引用。

【讨论】:

谢谢。这确实有道理。我将需要更多地查看示例以了解如何实现这一点。 @levi:如果您有任何问题,请将它们作为对此答案的评论发布,我会尽力解释。 ;-) 谢谢。我用你的代码让它工作了,我只需要花一些时间来完成它,这样我就可以完全理解它了,哈哈。 (是的菜鸟)

以上是关于jQuery在更改之前获取href初始值一次的主要内容,如果未能解决你的问题,请参考以下文章

获取初始记录

jquery 怎么定义数组,再怎么把值一个个添加到数组中,再怎么取出其中值

jQuery源码html,text,val

第一次使用油猴写脚本,jquery前后端交互

IE8 环境的 JQuery 中的 $.ajax 拒绝访问---解决方案

jQuery 中的不透明度更改动画不起作用