Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript和/或jquery动态获取查询字符串的值并添加到对象_Javascript_Query String - Fatal编程技术网

使用javascript和/或jquery动态获取查询字符串的值并添加到对象

使用javascript和/或jquery动态获取查询字符串的值并添加到对象,javascript,query-string,Javascript,Query String,我试图循环任何给定的键和值查询字符串对,并将它们的值添加到页面上已有的对象中。我只能让它部分工作。目前,此代码仅定义最后一对键/值查询字符串 例如,下面的查询字符串:index.html?example1=something&example2=somethingElse 仅在第一组输入字段中返回“example2”和“somethingElse”,其余字段未定义。很明显,问题是存在的,但如何做到这一点让我感到困惑 这在JSFIDLE中很难说明,因为我不知道如何将查询字符串添加到jsfiddle页

我试图循环任何给定的键和值查询字符串对,并将它们的值添加到页面上已有的对象中。我只能让它部分工作。目前,此代码仅定义最后一对键/值查询字符串

例如,下面的查询字符串:index.html?example1=something&example2=somethingElse

仅在第一组输入字段中返回“example2”和“somethingElse”,其余字段未定义。很明显,问题是存在的,但如何做到这一点让我感到困惑

这在JSFIDLE中很难说明,因为我不知道如何将查询字符串添加到jsfiddle页面,但我将分享我的代码,尽管如此:
var queryString=unescape(location.search);
//是否删除?
queryString=queryString.substring(1);
//将查询字符串拆分为键/值对
var pairs=queryString.split(“&”);
//将这些对加载到集合中
对于(变量i=0;i

定义标准
字段标签1
=
去除
字段标签2
=
去除
字段标签3
=
去除
字段标签4
=
去除

其中一部分与
keyValuePair
作用域有关,另一部分与将元素放入输入字段时如何索引元素有关。这是最新的小提琴

以及被替换的代码:

//var queryString = unescape(location.search);
var queryString = unescape('?example1=something&example2=somethingElse');

var keyValuePair = {};

//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 =
    keyValuePair[i] = pairs[i].split("=")
};

document.getElementById("expression-forms").getElementsByTagName("input")[0].value = keyValuePair[0][0];

document.getElementById("expression-forms").getElementsByTagName("input")[1].value = keyValuePair[0][1];

document.getElementById("expression-forms").getElementsByTagName("input")[2].value = keyValuePair[1][0];

document.getElementById("expression-forms").getElementsByTagName("input")[3].value = keyValuePair[1][1];
//var queryString=unescape(location.search);
var queryString=unescape(“?example1=something&example2=somethingElse”);
var keyValuePair={};
//是否删除?
queryString=queryString.substring(1);
//将查询字符串拆分为键/值对
var pairs=queryString.split(“&”);
//将这些对加载到集合中
对于(变量i=0;i

keyValuePair
也可以是一个数组,我只是忘了更改它,但它可以以任何方式工作。每次访问循环中的一对时,都会推送一个新数组。当替换值时,您只是在索引该数组的第一个维度,而它应该是
[pairIndex][pairHalf]

如果我要填充其他字段,那么kayValuePair的顺序是什么?keyValuePair[0][0];?如果您使用的是数组,它的构建方式是:
[[key,value],[key,value],[key,value]]
,因此您会对第一个字段使用
keyValuePair[2][0]
,对第二个字段使用
keyValuePair[2][1]
,并且该模式会重复。没问题,无论如何都会增加清晰度:)