如何将某些内容附加到javascript变量

时间:2012-09-01 03:03:17

标签: javascript

我有<select>代码

我想重定向用户onchange

我有一个代码,它工作正常

代码是

<select onchange="if (this.value) window.location.href=this.value">
<option value="&s=1">1</option>
<option value="&s=2">2</option>
<option value="&s=3">3</option>
<option value="&s=4">4</option>
</select>

这里的问题是:

目前的链接是:http://anlink.com/page.php?categ=4&subc=2

当我更改选项

我被重定向到http://anlink.com/&s=1

但我希望它重定向到

http://anlink.com/page.php?categ=4&subc=2&s=1

所以,我想将javascript代码编辑成这样的东西

if (this.value) window.location.href=
http://anlink.com/page.php?categ=4&subc=2 + this.value

我没有尝试这段代码,但我认为它会失败

2 个答案:

答案 0 :(得分:2)

这应该适合你:

<script type="text/javascript">
function changeLocation(field) {
    loc = String(window.location);
    newLoc = loc.replace(/\&s=\d$/gi, "") + field.value;
    window.location = newLoc;
}   
</script>
<select onchange="changeLocation(this)">
<option value="&s=1">1</option>
<option value="&s=2">2</option>
<option value="&s=3">3</option>
<option value="&s=4">4</option>
</select>

它将&s=的任何实例替换为后面带有数字的任何实例。然后它添加新值。原因在于&s=尚不存在。

如果您希望根据URL中的“s”更改“s”值(即,当您在URL中加载&s=3页面时,您希望选择为“3” “同样),进行以下更改:

onload="adjustS()"添加到正文

为select(我使用“s”)

添加一个id

添加以下功能:

function adjustS() {
    sLoc = String(String(window.location).match(/\&s=\d$/gi)).replace(/\&s=/gi, "");
    document.getElementById("s").selectedIndex = Number(sLoc)-1;
}

答案 1 :(得分:0)

尝试:

window.location.href += this.value

修改

var href = window.location.href;
var re = /&s\=\d$/;
if (re.test(href)) {
  window.location.href = href.replace(re, this.value);
} else {
  window.location.href += this.value;
}