當單擊某個按鈕時,我正在循環DOM元素。我已經把它貼類finish-proc
的按鈕,所以當點擊啓動此功能:jQuery:向每個循環中的數組添加對象不起作用
<script>
$(document).on('click', '.finish-proc', function() {
var communities = [];
var $this, $thisDay, input, inputDay, text, textDay, obj, objDay;
$('.panel-default').each(function (i) {
var maxPeople = '.' + $(this).attr('data-community') + '-max-people';
var dayInfoRow = '.' + $(this).attr('data-community') + '-day-info';
obj = {};
obj["maxPeople"] = $(maxPeople).val();
var daysArrayInLoop = [];
$(dayInfoRow).each(function (j) {
var objDay = {};
var dayString = '.' + $(this).attr('data-community') + '-day-' + (j + 1);
var dayStringStart = '.' + $(this).attr('data-community') + '-day-' + (j + 1) + '-start';
var dayStringEnd = '.' + $(this).attr('data-community') + '-day-' + (j + 1) + '-end';
objDay["dayString"] = $(dayString).val();
objDay["dayStringStart"] = $(dayStringStart).val();
objDay["dayStringEnd"] = $(dayStringEnd).val();
daysArrayInLoop.push(objDay);
}
obj["dayArray"] = daysArrayInLoop;
communities.push(obj);
}
}
</script>
這個代碼就行了突破:
daysArrayInLoop.push(objDay);
與錯誤:
daysArrayInLoop.push is not a function
誰能告訴我這是爲什麼?
編輯 - 我試圖改變var daysArrayInLoop = [];
到var daysArrayInLoop = {};
,仍然得到同樣的錯誤
你可以嘗試用'daysArrayInLoop推後定義數組。推(1);'看看它是否給出了同樣的錯誤。在推送和檢查控制檯是否顯示數組之前,請執行'console.log(daysArrayInLoop)'。你寫的代碼沒問題;它應該可以工作 –
你有沒有在任何地方定義'dayInfoRow'? – cars10m
基本上數組'daysArrayInLoop'被正確定義,並且在你使用'.push()'方法的時候在範圍內。所以一定有其他的東西.. – cars10m