如何使用jQuery处理MongoDB数组?

时间:2013-12-30 05:33:27

标签: jquery arrays mongodb each

MongoDB架构

{
"title": "my_title",
"myArray": ["1","2","3","4","5"]
}

Firebug响应

{"myArray": ["1", "2", "3", "4", "5"]}

所需行为

data-thing和第一个li class的值是动态的,其中值来自数据库数组。迭代此数组会生成一个包含动态值的li列表。

生成的HTML应为:

<li data-thing="1" class="prefix_1">
<ul class="nested">
<li class="hidden_li">
<p class="thing2">text</p>
</li>
</ul>
</li>

其次是:

 <li data-thing="2" class="prefix_2"> etc.  

的jQuery

$.getJSON("/path", {cid: href, format: 'json'}, function(myArray){
$.each(myArray, function(k,v) {
$("ul.class1").append("<li data-thing=\"" + v + "\" class=\"prefix_" + v + "\"><ul class=\"nested\"><li class=\"hidden_li\"><p class=\"thing2\">text</p></li></ul></li>");
});
})

当前行为

 <li class="prefix_1,2,3,4,5" data-thing="1,2,3,4,5">
 <ul class="nested">
 <li class="hidden_li">
 <p class="thing2">text</p>
 </li>
 </ul>
 </li>

的jsfiddle

http://jsfiddle.net/rwone/M9e8N/4/

(显示静态数组的所需结果)。

问题

使用静态数组时,我得到了所需的行为,但是当我使用getJSON()从数据库中获取数组时,我得不到所需的结果。

因此我认为我在jQuery中错误地引用了数组,并且迭代没有按预期发生?

1 个答案:

答案 0 :(得分:0)

<强>解决方案

$.each(myArray.myArray, function(k,v) { ...

我必须在数据库文档中引用密钥名称。

第一个myArray是返回getJSON()的结果的名称,第二个.myArray是对数据库文档中的键名称的引用。