逗号分隔值:从字符串到对象到列表

Fra*_*rti 5 javascript jquery

我有3个变量,其中包含逗号分隔值的字符串(我不知道有多少)我想要组合成jQuery对象.

"name1,name2,name3,nameN"
"value1,value2,value3,valueN"
"id1,id2,id3,idN"
Run Code Online (Sandbox Code Playgroud)

至:

var item1 = { name: name1, value: value1, id: id1 };
var item2 = { name: name2, value: value2, id: id2 };
var item3 = { name: name3, value: value3, id: id3 };
var itemN = { name: nameN, value: valueN, id: idN };
Run Code Online (Sandbox Code Playgroud)

然后迭代每个项目上的操作,例如附加一个列表:

<h3>items</h3>
<ul>
    <li>item1</li>
       <ul>
          <li>value: <b>value1</b></li>
          <li>id: <b>id1</b></li>
       </ul>

    [...]

    <li>itemN</li>
       <ul>
          <li>value: <b>valueN</b></li>
          <li>id: <b>idN</b></li>
       </ul>
<ul>
Run Code Online (Sandbox Code Playgroud)

做这个的最好方式是什么?

jfr*_*d00 11

您可以像这样构建一个项目数组:

var names = "name1,name2,name3,nameN";
var values = "value1,value2,value3,valueN";
var ids = "id1,id2,id3,idN";

var namesArray = names.split(",");
var valuesArray = values.split(",");
var idsArray = ids.split(",");

var item, items = [];
for (var i = 0; i < namesArray.length; i++) {
    item = {};
    item.name = namesArray[i];
    item.value = valuesArray[i];
    item.id = idsArray[i];
    items.push(item);
}
Run Code Online (Sandbox Code Playgroud)

然后,要从中构建HTML,您可以这样做:

var main = $("<ul>");
var str = "";
for (var i = 0; i < items.length; i++) {
    str += "<li>" + items[i].name + "</li><ul><li>value: <b>" + items[i].value + "</b></li>";
    str += "<li>id: <b>" + items[i].id + "</b></li></ul>";
}
main.html(str);
$(document.body).append("<h3>items</h3>")
$(document.body).append(main);
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到它的工作:http://jsfiddle.net/jfriend00/yWU3L/4/.