2

例如,我有这个代码?prside=5。但是,如果您更改它并且 url 已经是&prside=5,它只是再次附加它(&prside=5&prside=40)。

如果它已经存在,我如何更新它而不是附加它?

<select name="prside" onchange="document.location.href = document.location.href + \'&prside=\' + this.value">
    <option>Annoncer pr. side</option>
    <option value="5">5</option>
    <option value="10">10</option>
    <option value="20">20</option>
    <option value="40">40</option>
</select>

编辑:真实 URL 中还有其他 GET 变量。上面的脚本确实有效,只是多个 &prside 不是很漂亮

4

1 回答 1

1

您可以使用字符串 indexOf 方法检查 prside 是否存在,然后您可以使用正则表达式替换该值(如果存在):

href = document.location.href;
if(!~href.indexOf('prside'))
    document.location.href = href + 'prside=' + this.value;
else
    document.location.href = href.replace(/(prside=)\d+/, '$1' + this.value)

如果您想将其直接放入 HTML 中,这是一个单行

document.location.href = !~document.location.href.indexOf('prside') ? document.location.href + 'prside=' + this.value : document.location.href.replace(/(prside=)\d+/, '$1' + this.value);
于 2012-08-28T14:24:12.330 回答