循环时,每个jquery都无法正常工作

时间:2013-12-23 06:06:11

标签: javascript jquery json loops each

我无法弄清楚,为什么这段代码(只有js)没有运行 - http://jsfiddle.net/fLEAw/

populateList();
populateList: function () {
        var accData = [{ A: "A1" }, { B: "B1"}];

    $.each(accData, function (index) {
            alert(accData[index].Value)
        });

    }

5 个答案:

答案 0 :(得分:3)

您的javascript / jquery代码有多个问题。看看这个

var populateList = function () {
    var accData = [{ A: "A1" }, { B: "B1"}];

    $.each(accData, function (index) {
        for(var value in accData[index]){
            alert(accData[index][value])
        }

    });

}

populateList();

我宁愿建议你纠正自己的问题并在评论中提问。

http://jsfiddle.net/fLEAw/3/

答案 1 :(得分:2)

您可以使用$.each循环数组对象:

$.each(accData, function(i, obj) {    
  $.each(obj, function(k, value) {
    alert(value);
  });
});

我怀疑你最终会使用alert,你可能希望值​​对它们做些什么,所以你可以把它们放在一个数组中。这是纯JavaScript中的另一种可重用的方法:

var values = function(obj) {
  var result = [];
  for (var i in obj) {
    result.push(obj[i]);
  }
  return result;
};

var flatten = function(xs) {
  return Array.prototype.concat.apply([], xs);
};

var result = flatten(accData.map(values));

console.log(result); //=> ["A1", "B1"]

答案 2 :(得分:1)

更改

populateList: function () {

function populateList() {

写:

populateList();
function populateList() {
    var accData = [{
        A: "A1"
    }, {
        B: "B1"
    }];
    var len = accData.length;
    for (var i = 0; i < len; i++) {
        $.each(accData[i], function (key, value){
            //key will return key like A,B and value will return values assigned
            alert(value)
        });
    }
}

Updated fiddle here.

答案 3 :(得分:0)

由于您的数组元素是对象,请尝试以下解决方案:

var populateList = function () {
  var accData = [{ A: "A1" }, { B: "B1"}];

  $.each(accData, function (index) {    
    for(var ele in accData[index]){
      alert(accData[index][ele]);
    }
  });

};
populateList();

Demo

答案 4 :(得分:0)

尝试这样的事情

var accData = [{ A: "A1" }, { B: "B1"}];
$.each(accData, function (index,obj) {
  $.each(obj, function(key, value) {
    alert(key + '' + value);
  });
});