我有以下代碼:jQuery變量作用域?說未定義
function postToDrupal(contacts, source, owner) {
(function ($) {
var contact, name, email, entry;
emails = {};
for (var i = 0; i < contacts.length; i++) {
contact = contacts[i];
emails[i]['name'] = contact.fullName();
emails[i]['email'] = contact.selectedEmail();
}
$.post("/cloudsponge-post",emails,function(data) {
});
}(jQuery));
}
我收到以下錯誤,當我嘗試並運行它:
WARN: Attempt to invoke callback [afterSubmitContacts] failed: TypeError: Cannot set property 'name' of undefined
我不知道這個問題是 - 什麼我很新的JS和發現它有點棘手。它破裂的原因是什麼,我該如何解決它?
您的電子郵件在一個對象中,而不是一個數組,所以電子郵件[i]是未定義的。你也忘了它之前的變種。 – Virus721
我記得在設置對象屬性之前被迫做= {},所以我認爲它是相同的數組。 – Virus721
請注意,如果我問爲什麼直接在函數中使用IIFE?該函數創建它自己的範圍。它是否與使用'$'變量的Drupal相關? – Jasper