在发送请求之前编辑href链接

时间:2011-08-23 09:55:45

标签: javascript jquery html

我有this代码:

<a class="myLink" href='http://www.website.it/'>Link</a>

<script type="text/javascript">
    var stringToSend = "";
    $('.myLink').click(function() {
        stringToSend="?param=1";
    }); 
</script>

并且,正如您所看到的,我想将stringToSend添加到href(因此请求将位于http://www.website.it/?param=1)。

我该怎么做?

4 个答案:

答案 0 :(得分:23)

只需使用新href修改href即可。

$('.myLink').click(function() {
    $(this).attr("href", this.href + "?param=1");
});

答案 1 :(得分:3)

您还应该阻止这样的默认行为:

var stringToSend = "";

// Use this to actually navigate to the changed Uri
$('.myLink').click(function(event) {
    event.preventDefault();
    stringToSend = "?param=1";
    window.location.href = $(this).attr('href') + stringToSend;
}); 

// Use this just to change the Href, without navigating to uri
$('.myLink').click(function(event) {
    event.preventDefault();
    stringToSend = "?param=1";
    var newUri = $(this).attr('href') + stringToSend;
    $(this).attr("href", newUri);
});

答案 2 :(得分:1)

点击后,您可以停止当前网址,然后导航到另一个网址:

var stringToSend = "";
$('.myLink').click(function() {
    stringToSend="?param=1";
    window.location.href = $(this).attr('href') + stringToSend; // navigate to new URL
    return false; // abort navigation to URL from <a>
}); 

答案 3 :(得分:0)

只需在点击时设置window.location,然后返回false以防止出现默认行为。

这样:

<a class="myLink" href='http://www.website.it/'>Link</a>

<script type="text/javascript">
    var stringToSend = "";
    $('.myLink').click(function() {
        window.location.href = this.href + "?param=" + stringToSend;
        return false;
    }); 
</script>