我有以下来自另一个页面的序列化数据字符串(其中一些内容来自复选框,因此这就是重复“品牌”的原因):
brand=福特&brand=道奇&brand=马自达&year=2013&type=compact
我想用“results”的 id 填充 div 标签:
<div id="results">
<div id="brand"></div>
<div id="year"></div>
<div id="type"></div>
</div>
我目前正在使用此代码来循环数据:
$.each(SelectionData.split('&'), function (index, elem) {
var vals = elem.split('=');
$('#' + vals[0]).text(decodeURIComponent(vals[1].replace(/\+/g, ' ')));
});
在我们向表单添加复选框之前,它一直工作正常。现在,当名称与此处显示的相同时,我只能显示字符串中的最后一个值:
这就是我们现在拥有的
<div id="results">
<div id="brand">Mazda</div>
<div id="year">2013</div>
<div id="type">compact</div>
</div>
这就是我们正在寻找的:
<div id="results">
<div id="brand">Ford,Dodge,Mazda</div>
<div id="year">2013</div>
<div id="type">compact</div>
</div>
最佳答案
我不明白为什么您希望结果在名为 results
的 div 内进行格式化,但您的代码尝试更改 id 等于 uri 参数名称的元素的文本.
无论如何,我想我已经弄清楚你想做什么了。 Working Demo
HTML:
<div id="brand"></div>
<div id="year"></div>
<div id="type"></div>
代码:
var SelectionData = 'brand=Ford&brand=Dodge&brand=Mazda&year=2013&type=compact';
$.each(SelectionData.split('&'), function (index, elem) {
var vals = elem.split('=');
var $div = $("#"+vals[0]);
var separator = '';
if ($div.html().length > 0) {
separator = ', ';
}
$div.html($div.html() + separator + decodeURIComponent(vals[1].replace(/\+/g, ' ')));
});
关于jquery - 如何循环 jQuery 序列化的数据,然后填充 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14342268/