2016-06-27 2 views
0

옵션을 동적으로 선택하려면 (한 줄씩 텍스트 영역에서 가져옵니다). 그러나 다음 스 니펫은 항목을 두 번 추가합니다. 내가 결함이있는 곳? 팁 주셔서 감사합니다.jQuery each - 메서드를 두 번 추가합니다.

function changeOptions() { 
    var lines = []; 
    $('#simulation').empty(); 
    var lines = $('textarea').val().split('\n'); 
    console.log ('lines.length ', lines.length); 
    for (var i = 0; i < lines.length; i++) { 
     $.each(lines, function(i, lines) { 
      $('#simulation').append($('<option>', { 
       value : lines, 
       text : lines 
      })); 
     }); 
    } 
}; 
+2

왜'for' 루프 안에'.each()'가 들어 있습니까? –

+0

안녕하세요. $ .each를 사용하지 않으면 항목을 줄 단위로 가져 오지 않습니다. – mm1975

답변

3

foreach? 너 두번이나 했어! :)

다음은 코드의 약간 짧은 버전입니다. 나는이 같은 루프에서 더 빠르기 때문에 foreach 이상으로 좋아한다. 그리고 당신이하고 싶은 일을 위해서, for은 사용하기가 아주 쉽습니다.

function changeOptions() { 
    var select = $('#simulation').empty(), 
     lines = $('textarea').val().split('\n'); 

    for(var i = 0; i < lines.length; i++) 
     select.append($('<option>', { 
      value : lines[i], 
      text : lines[i] 
     })); 
}; 
+0

안녕하세요. 고마워요 – mm1975

+0

당신을 진심으로 환영합니다! 부담없이 자유롭게 사용할 수 있습니다. ;) – eisbehr

+0

다른 질문을해도 되겠습니까? 'testname, testvalue, testcolor, ....'와 같은 줄에 텍스트가있는 경우. 첫 번째 텍스트 'testname'만 추가해야합니다. 첫 번째 쉼표 앞에 오는 모든 것. 어떻게 한 줄씩 나눌 수 있습니까? – mm1975

관련 문제