簡體   English   中英

jQuery在循環時各自無法正常工作

[英]jquery each not working propertly while looping through

我無法弄清楚為什么此代碼(僅js)未運行-http://jsfiddle.net/fLEAw/

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

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

    }

您的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/

您可以使用$.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"]

更改

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)
        });
    }
}

在這里更新了小提琴。

由於您的數組元素是對象,請嘗試以下解決方案:

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

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

};
populateList();

演示

嘗試這樣的事情

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM