jquery - 如何循环 jQuery 序列化的数据,然后填充 div?

标签 jquery serialization deserialization each

我有以下来自另一个页面的序列化数据字符串(其中一些内容来自复选框,因此这就是重复“品牌”的原因):

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/

相关文章:

php - 如何在 symfony 1.4 中访问 actions.class.php 中的 POST 参数?

javascript - 日期选择器(.js)不在 HTML 编辑器中工作,但在 fiddle 中工作

serialization - 使用 jackson 序列化 Map.Entry 时出现问题

java - 使用 Jackson 序列化 vertx JsonObject

c# - 无法将扩展 DynamicObject 的类序列化为 JSON 字符串。

javascript - 如何在博客上添加 "load more"按钮?

c# - Json字符串反序列化为对象数组列表

c# - 将 JSON 反序列化为 List<T> 时出现问题

java - 如何将 CSV 记录映射到 bean?

javascript - 多项选择,语法错误,无法识别的表达式:option [value = cc dd]