jquery map从多个源返回json对象

时间:2015-03-24 01:48:57

标签: javascript jquery json

var idk = $('#menu li').map(function (i, n) {

    var placeholder = $(n).attr('id')
    var content = $(n).find('.li2').attr('id');

    return //..

}).get().join(',');

}

我想得到这样的东西 {'a':1,'b':2,'c',3}其中abc来自占位符,123是内容。我应该使用map()返回什么内容?

2 个答案:

答案 0 :(得分:0)

我可能会忽略你想要做的事情,但我认为你不需要地图。为什么不这样呢?

var listItems = $('#menu li');
var map = {};

for (var i = 0, length = listItems.length; i < length; i++) {
  var listItem = listItems[i];

  map[listItem.attr('id')] = listItem.innerText;
}

演示:http://jsbin.com/vahija/1/edit

答案 1 :(得分:0)

.map为您提供了一系列对象。

使用$.extend将它们合并为一个对象。

var arrayOfObjects = $('#menu li').map(function (i, n) {

    var placeholder = $(n).attr('id')
    var content = $(n).find('.li2').attr('id');
    var obj = {};
    obj[placeholder] = content;
    return obj;
});
// arrayOfObjects = [{a : 1}, {b : 2}, {c : 3}]

var obj = $.extend.apply(null, arrayOfObjects);
// obj = {a: 1, b: 2, c: 3}