2013-11-20 154 views
0

我想使用一個字符串作爲對象字面值中的鍵,然後在一個函數中使用該字符串將該字符串添加到HTML li元素中的數據屬性。基本的想法是創建一個用戶ID,然後到達特定用戶進行更新/刪除。創建部分工作正常。試圖訪問對象字符串是一個字符串

首先,我需要將信息放入我的li元素中,以便單擊給我我想要的id。下面的代碼工作,但只是因爲我包含在對象內的id。爲了使用它,在對象中複製字符串 - userguid鍵似乎很愚蠢和錯誤。

users = { 
    "0c7270bd-38e8-4db2-ae92-244de019c543": { 
    datecreated: "2013-10-15", 
    email: "[email protected]", 
    firstname: "Jimmy", 
    lastname: "Smith", 
    username: "jimmysmith", 
    password: "foobar", 
    notify: "[email protected]", 
    userguid: "0c7270bd-38e8-4db2-ae92-244de019c543" 
    }, 
    "0c7270bd-38e8-4db2-ae92-244de019mju7": { 
    datecreated: "2013-10-16", 
    email: "[email protected]", 
    firstname: "Mary", 
    lastname: "Jones", 
    username: "maryjones", 
    password: "foobar2", 
    notify: "[email protected]", 
    userguid: "0c7270bd-38e8-4db2-ae92-244de019mju7" 
    } 
}; 

使用它的功能:

displayUserList = function() { 
    var newHTML; 
    users = JSON.parse(localStorage["users"]); 
    newHTML = []; 
    $.each(users, function(index, user) { 
    return newHTML.push('<li data-userguid="' + user.userguid + '" data-firstname="' + user.firstname + '"><span class="userfullname">' + user.firstname + ' ' + user.lastname + '</span></li>'); 
    }); 
    /* 
    jquery css going on here 
    */ 
}; 

我想userguid出物體的內部。我試過使用各種東西來定位該字符串並將其帶入html,但沒有任何作用。我也希望能夠將其作爲更新和刪除的目標。

我已經試過

user  user[user] user.user 

我開始覺得我失去了使用對象文本的基本規則,但我還沒有發現它在我的搜索。

感謝您的任何幫助。

查理·馬吉

+0

'索引'將是關鍵。 – Barmar

+0

console.log(用戶) – rdodev

+0

您爲什麼要將密碼存儲爲純文本客戶端的任何特定原因? – Emissary

回答

1

當通過與$.each對象迭代,指數參數接收鍵,這樣你就可以這樣做:

newHTML.push('<li data-userguid="' + index + '" data-firstname="' + user.firstname + '"><span class="userfullname">' + user.firstname + ' ' + user.lastname + '</span></li>'); 

你不需要return這句話。 $.each()對返回值做的唯一的事情是對===false進行測試 - 如果是,則循環結束。

+0

該死!我試過[索引],但沒有索引。顯然仍然試圖找出括號的正確位置。這工作完美。 – charliemagee

+0

當你想要創建一個數組文字時,你可以將括號*放在*內。如果要將其用作索引來訪問數組或對象的元素,請在*名稱後面加上括號*。 – Barmar

相關問題