function changer(){
var changedArr = [];
this.changeIt = function($this, str ){
if(str!="back"){
$this = document.getElementById($this);
$this.href = $this.href+"&id="+str;
changedArr.push( $this );
}else{
for( var i=0, len=changedArr.length;i<len;i++){
var lastInd = changedArr[i].href.lastIndexOf("&");
changedArr[i].href = changedArr[i].href.substr(0,lastInd);
}
}
};
}
var chHandler = new changer();
и html ...
<a id="link1" href="http://google.com/stats.php?go=normal">normal</a>
<a id="link2" href="http://google.com/stats.php?go=normalmedium">normal medium</a>
<a id="link3" href="http://google.com/stats.php?go=normalmediumhigh">normal medium high</a>
<a id="link4" href="http://google.com/stats.php?go=normalhigh">normal high</a>
<a id="link5" href="http://google.com/stats.php?go=superhigh">super high</a>
и ...
<a href="#" onclick="chHandler.changeIt('link1','bnone9099');">burner one</a>
<a href="#" onclick="chHandler.changeIt('link2','bnone9034');">burner two</a>
<a href="#" onclick="chHandler.changeIt('link3','bnone9098');">burner three</a>
<a href="#" onclick="chHandler.changeIt('dummy','back');">BACK</a>
Объяснение приведенного выше кода.Мы создаем новый объект "changer ()", в классе changeIt мы передаем два аргумента: первый - это идентификатор ссылки, идентификатор которой должен быть отредактирован, а второй - это данные значения / id.
мы сохраняем измененные ссылки в массиве ChangeArr, а когда щелкаем на кнопке back (вызвано, потому что она отправляет 'back' в качестве второго аргумента), мы выполняем цикл for в changeArr и удаляемвсе, что следует за последним вхождением & .... (что всегда в этой ситуации id id)
Рабочий пример можно посмотреть здесь, http://jsfiddle.net/H2YHw/