2009-08-31 3 views
1

HTML : 클론()없이jQuery에서 복제() 도중 무엇이 손실 되었습니까?

<div id="container"> 
    <select id="selector"> 
     <option value="">--</option> 
     <option value="Service">Service</option> 
     <option value="Sales">Sales</option> 
     <option value="Marketing">Marketing</option> 
     <option value="Finance">Finance</option> 
     <option value="Engineering">Engineering</option> 
     <option value="Management">Management</option> 
    </select> 
</div> 
<input type="button" id="test" /> 

스크립트는 모든 권리 작동 : 클론()와

$('#test').click(function(){ 
    $('#container').find('select').each(function() { 
     var $elem = $(this); 
     var value = $elem.val(); 
     alert(value); 
    }); 
}); 

스크립트가 작동하지 :

$('#test').click(function(){ 
    $('#container').clone().attr('id', 'container2').find('select').each(function() { 
     var $elem = $(this); 
     var value = $elem.val(); 
     alert(value); 
    }); 
}); 
+0

값을 가져올 수 없습니다. 시도해 볼 수 있습니다. – omg

+0

버튼을 클릭 했습니까? – omg

+0

이 아닌 "-"를 먼저 선택하면 첫 번째 샘플이 선택된 값인 – omg

답변

2

내가 알고하지 않습니다 이것이 문제이지만, <select> 요소를 복제 할 때 선택한 항목이 사용자. 이 문제를 해결하려면 원래 선택한 옵션에 selected DOM 속성을 적용하면됩니다. 예 :

$('#test').click(function(){ 

    var selectMenus = $('#container').find('select'); 

    $('#container').clone().attr('id', 'container2').find('select').each(function(i) { 

     /* See this: */ 
     $('option', this)[selectMenus[i].selectedIndex].selected = true; 

     var $elem = $(this); 
     var value = $elem.val(); 
     alert(value); 

    }); 

}); 

편집 : 브라우저 간 문제인지는 확실치 않지만 FF3.5에 영향을줍니다.

+0

그것은 IE 7에서 잘 작동합니다. – rahul

+0

이것은 의심의 여지없이 좋은 해결책입니다, 건배! – omg

관련 문제