使用jQuery增加href值:

时间:2011-04-02 20:58:04

标签: jquery regex

假设您有一个包含一些值的链接:

<a href="/action?number_one=1&number_two=4" class="some_link"> something </a>

当用户使用jQuery点击此链接时,如何增加number_one和number_two?

我知道extract number_one's value你可以使用正则表达式:

var number_one = $(this).attr("href").match(/number_one=([0-9]+)/)[1];

你怎么能把它增加到20,所以它现在变成:

<a href="/action?&number_one=21&number_two=24" class="some_link"> something </a>

2 个答案:

答案 0 :(得分:1)

这在Chrome中起作用,至少 - .search属性是HTML5属性:

// get the real link element
var link = $(this).get(0);
var fields = {};

// parse and increment number one
fields.number_one = link.search.match(/number_one=([0-9]+)/)[1];
fields.number_one += 20;

// do same for number two:
fields.number_two = link.search.match(/number_two=([0-9]+)/)[1];
fields.number_two += 20;

// update the link's query parameters
link.search = $.param(fields);

答案 1 :(得分:0)

这应该适用于任意数量的url-query var=number对:

var fixed_url = $(this).attr("href").replace(
        // This regex matches a url-query var=number
        /([?&]\w+=)(\d+)(?=[&#]|$)/g,
        // This function increments the value by one.
        function(m0, m1, m2) {
            return m1 + (Number(m2) + 1);
        });

编辑:删除了无效的jQuery分配。