假设您有一个包含一些值的链接:
<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>
答案 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分配。