在发送请求之前修改链接(使用Jquery)

时间:2013-06-07 05:22:33

标签: javascript jquery

我的问题是我在页面上有一些链接,目前这些链接是在html文件中生成的ruby。 因此,当用户加载页面时,会创建链接并基于某些数据库数据。但是,还有一个选项,即不是由DB生成的,应该是实时工作的。

例如,如果当前提交了按钮“A”,则链接应该请求:

http://url/?(ruby generated parametrs)&button=A

然后用户点击按钮'B',并链接请求:

http://url/?(ruby generated parametrs)&button=B

总结一下,基本上,Jquery应该添加一个额外的参数来链接,然后向服务器发送请求。

这可能吗?我怎么能这样做?

P.S。我非常不喜欢在提交选项按钮之一的页面上重新加载所有链接的想法,它与特定的应用程序功能连接,页面上有很多这样的链接。

代码:

 array[i]="<span id='width_measure_#{i}'>"+(link_to(array[i], {:controller =>'tests',  :action => 'add_key', :keyword => array[i], :position=>i}, :class=>'unsaved_links', :id=>i, :method => :post, :remote => true))

HTML输出:

<a href="/tests/46/add_key?keyword=TEST&amp;position=0" class="unsaved_links" data-method="post" data-remote="true" id="0" rel="nofollow">TEST</a>

通缉最终请求:

<a href="/tests/46/add_key?keyword=TEST&amp;position=0&amp;button=A" class="unsaved_links" data-method="post" data-remote="true" id="0" rel="nofollow">TEST</a>

2 个答案:

答案 0 :(得分:4)

我认为你想要的是一个简单的替代品,或者更确切地说是一个字符串追加:

$("a").click(function() {
    this.href += "&button=" + this.id;
});

http://fiddle.jshell.net/N2Yvv/

答案 1 :(得分:0)

尝试以下。 DEMO here

<强> HTML

<a id="buttonA" href="http://yahoo.com" target="_blank">Yahoo</a>
<a id="buttonB" href="http://google.com" target="_blank">Google</a>
<a id="buttonC" href="http://twitter.com" target="_blank">twitter</a>

<强>的jQuery

$('a').each(function(){

    var newUrl = $(this).attr('href') + '?button=' + this.id;
    $(this).attr('href', newUrl);

});