2013-11-20 5 views
0

객체 리터럴에서 문자열을 키로 사용하고 해당 문자열을 HTML 요소의 데이터 속성에 추가하는 함수에서 해당 문자열을 사용하려고합니다. . 기본 아이디어는 사용자 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 

을 시도했습니다,하지만 난 내 검색에 그것을 발견하지 않았습니다.

도움 주셔서 감사합니다. 당신이 문에 return 필요하지 않습니다

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

: 당신이 할 수 있도록

찰리 매기는

+0

'색인'이 키가됩니다. – Barmar

+0

console.log (사용자) – rdodev

+0

암호를 일반 텍스트 클라이언트 쪽으로 저장하는 특별한 이유는 무엇입니까? – Emissary

답변

1

$.each와 객체 반복, 인덱스 매개 변수 키를받습니다. $.each()이 반환 값을 가지고 수행하는 유일한 것은 ===false에 대한 테스트입니다. 그렇다면 루프가 끝납니다.

+0

젠장! 나는 [인덱스]를 시도했지만 인덱스는 시도하지 않았다. 확실히 브래킷을위한 정확한 장소를 알아 내려고 노력하고 있습니다. 이것은 완벽하게 작동했습니다. – charliemagee

+0

배열 리터럴을 만들려는 경우 * 주위에 대괄호 *를 붙입니다. 배열이나 객체의 요소에 액세스하기 위해 인덱스로 사용하려면 * 뒤에 *를 붙입니다. – Barmar

관련 문제