2011-03-24 2 views
1

키 : 값 쌍이있는 개체가 있습니다. 이 객체를 통해 루핑 할 때 키가 내 함수에 전달 된 값과 일치하면이를 다른 변수에 추가합니다. 문제는 내 코드가 결과를 반복하면서 마지막 변수를 새 변수에만 추가한다는 것입니다. 나는 키 1 전달하고 경우jQuery 각 함수는 총 결과의 마지막 결과 만 반환합니다.

function DirectoryOfBusinessSubs(parentID) { 
    var myOpt = {"1":"<option>sub1</option>","1":"<option>sub2</option>"}; 
    var myList; 
    $.each(myOpt, function(key, value) { 
        if(key == parentID){ 
        myList += value; 
        } 
       }); 
       alert(myList); 
       c.append(myList); 
     } 

myList는 SUB1과 SUB2 모두를 받아야하지만,이 코드는 myList에 SUB2를 저장한다.

+0

당신은 동일한 키 – Faraona

답변

2

이 시도 :

$.each(myOpt, function(key, value) { 
        (function(v){ 
         if(key == parentID){ 
         myList += v; 
         } 
        })(value); 
       }); 
       alert(myList); 
       c.append(myList); 
     } 

JavaScript closures

+0

하하, 예를 사용할 수 없습니다 :이 WORK : –

+0

그러면 투표 할 수 있습니다 :) – Faraona

+0

등록이되면 알려 드리겠습니다. –

0

다른 범위를 포함하는 작업을 수행해야합니다

function DirectoryOfBusinessSubs(parentID) { 
    var myOpt = {"<option>sub1</option>":"1","<option>sub2</option>":"1"}; 
    var myList = ''; //Fix undefined alert 
    $.each(myOpt, function(key, value) { 
        if(value== parentID){ 
        myList += key; 
        } 
       }); 
       alert(myList); 
       c.append(myList); 
     } 

이것은 효과가 있었다.

+0

이것은 매우 흥미 롭다. 기사에 감사드립니다. –

관련 문제