【发布时间】:2014-09-25 15:17:41
【问题描述】:
我正在尝试遍历任何给定的键和值查询字符串对,并将它们的值添加到页面上已有的对象中。我只能让它部分工作。目前,此代码仅定义最后一对键/值查询字符串。
例如,以下查询字符串:index.html?example1=something&example2=somethingElse
仅在第一组输入字段中返回“example2”和“somethingElse”,其余未定义。显然,存在问题,但我不知道如何做到这一点。
这在 jsfiddle 中很难说明,因为我不知道如何将查询字符串添加到 jsfiddle 页面,但我会分享我的代码:
var queryString = unescape(location.search);
//remove the ?
queryString = queryString.substring(1);
//split querystring into key/value pairs
var pairs = queryString.split("&");
//load the pairs into a collection
for (var i = 0; i < pairs.length; i++) {
//split into key/value pair by splitting on =
var keyValuePair = pairs[i].split("=");
//keyValuePair[0] = key
//keyValuePair[1] = value
//alert("Value = " + keyValuePair[1] );
}
document.getElementById("expression-forms").getElementsByTagName("input")[0].value = keyValuePair[0];
document.getElementById("expression-forms").getElementsByTagName("input")[1].value = keyValuePair[1];
/*document.getElementById("expression-forms").getElementsByTagName("input")[2].value = keyValuePair[2];
document.getElementById("expression-forms").getElementsByTagName("input")[3].value = keyValuePair[3];
document.getElementById("expression-forms").getElementsByTagName("input")[4].value = keyValuePair[4];
document.getElementById("expression-forms").getElementsByTagName("input")[5].value = keyValuePair[5];
document.getElementById("expression-forms").getElementsByTagName("input")[6].value = keyValuePair[6];
document.getElementById("expression-forms").getElementsByTagName("input")[7].value = keyValuePair[7];*/
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="col-lg-8">
<div class="panel">
<h3>Define Criteria</h3>
<div class="panel-body">
<form class="form-horizontal" role="form" id="expression-forms">
<div class="form-group">
<label class="col-sm-2 control-label text-left" for="inputPassword">Field Label 1</label>
<div class="col-sm-3">
<input name="field_01" type="text" class="form-control input-lg" id="fg1" placeholder="">
</div>
<label class="col-sm-1 control-label text-center" >=</label>
<div class="col-sm-3">
<input name="field_02" type="text" class="form-control input-lg" id="fg2" placeholder="">
</div>
<div class="col-sm-2">
<button class="btn" type="button" id="remove"><i class="fa fa-close"></i> Remove</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label text-left" for="inputPassword">Field Label 2</label>
<div class="col-sm-3">
<input name="field_03" type="text" class="form-control input-lg" id="fg3" placeholder="">
</div>
<label class="col-sm-1 control-label text-center" >=</label>
<div class="col-sm-3">
<input name="field_04" type="text" class="form-control input-lg" id="fg4" placeholder="">
</div>
<div class="col-sm-2">
<button class="btn"><i class="fa fa-close"></i> Remove</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label text-left" for="inputPassword">Field Label 3</label>
<div class="col-sm-3">
<input name="field_05" type="text" class="form-control input-lg" id="fg5" placeholder="">
</div>
<label class="col-sm-1 control-label text-center" >=</label>
<div class="col-sm-3">
<input name="field_06" type="text" class="form-control input-lg" id="fg6" placeholder="">
</div>
<div class="col-sm-2">
<button class="btn"><i class="fa fa-close"></i> Remove</button>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label text-left" for="inputPassword">Field Label 4</label>
<div class="col-sm-3">
<input name="field_07" type="text" class="form-control input-lg" id="fg7" placeholder="">
</div>
<label class="col-sm-1 control-label text-center" >=</label>
<div class="col-sm-3">
<input name="field_08" type="text" class="form-control input-lg" id="fg8" placeholder="">
</div>
<div class="col-sm-2">
<button class="btn"><i class="fa fa-close"></i> Remove</button>
</div>
</div>
</form>
</div>
</div>
</div>
谁能解释我做错了什么?
【问题讨论】: