Js获取URL并根据选择的形式更改其参数

时间:2018-05-22 00:56:47

标签: javascript jquery

我有以下表格和Js代码来获取来自" logodiv"的当前网址。 div并将用户提交的数据表单附加到div中的url:

<select id="type1form" onchange="myFunction()">
 <option value="000">000</option>
 <option value="111">111</option>
 <option value="222">222</option>
</select>

<select id="type2form" onchange="myFunction()">
 <option value="AAA">AAA</option>
 <option value="BBB">BBB</option>
 <option value="CCC">CCC</option>
</select>

<div id="logodiv">
    <a href="http://test.com/redir.php?"><img src="logo1.jpg"></a>
</div>
<div id="logodiv">
    <a href="http://test.com/redir.php?"><img src="logo2.jpg"></a>
</div>


<script>
function myFunction() {

  var mylinks = [];
    var mylogo = document.querySelectorAll("#logodiv");
    for(var j = 0; j < mylogo.length; j++) {
        mylinks[j] = mylogo[j].childNodes[1].href;
    }

  var type1 = document.getElementById("type1form").value;
  var type2 = document.getElementById("type2form").value;

  for(var i = 0; i < mylogo.length; i++) {
    mylogo[i].childNodes[1].href = mylinks[i] + "&type1=" + type1form + "&type2=" + type2form;
   }

}
</script>

我的问题在于最后一个循环代码,每次单击表单时,url都不会更改,但它会附加表单数据。所以相反url变成了:

test.com/redir.php?type1=000&type2=AAA

如果单击两次或更多选择字段,则网址将变为:

test.com/redir.php?type1=000&type2=AAA&type1=111&type2=BBB

我想要url becames只有用户提交的最后一个type1和type2参数,而不是无限地在url末尾附加参数。

你能帮助我吗?

1 个答案:

答案 0 :(得分:1)

进行了一些修改以使其有效,您可以在此处查看它们: https://jsfiddle.net/x07cqd3z/1/

首先,id应该是唯一的,所以logodiv现在是一个类。

其次,您的代码中存在一些已修复的错误。

我的工作是每次都使用url base(“?”之前的所有内容)仅将参数附加一次。

代码:

getParentFile()