2012-08-14 7 views
0

선택 목록으로 변환해야하는 모든 UL LI 블록에 함수를 쓰는 대신 한 번만 함수를 사용하려고합니다. 당신은 .appendTo로 엉망jQuery를보다 구체적으로 만들려면 어떻게해야합니까?

$('.filterSection').each(function(){ 

     $('<select class="locationFilterSelect" />').appendTo(this); 
     //Create Default option "Select One" 
     $("<option />", { 
      "selected": "selected", 
      "value" : "", 
      "text" : "Select One" 
     }).appendTo('select', this); 
     // Populate dropdown with menu items 
     $('li', this).each(function() { 
      var el = $(this); 
      $("<option />", { 
       "text" : el.text() 
      }).appendTo('select', this); 
     }); 
    }); 

답변

2

: 내 작업 코드는 http://jsfiddle.net/qqzB5/

에 내가 이것을 시도했지만 루프 할 특정 섹션 내의 모든 리튬의, 단지 하나의 이상이다. 하나의 논쟁이 필요 하죠? 그리고 일부 범위 지정을 사용해야합니다. select 변수를 외부 처리기에서 내부 처리기로 전달합니다. 이 코드를보고 :

$('.filterSection').each(function(){ 
    var select = $('<select class="locationFilterSelect" />') 
    select.appendTo(this); 
    //Create Default option "Select One" 
    $("<option />", { 
     "selected": "selected", 
     "value" : "", 
     "text" : "Select One" 
    }).appendTo(select); 
    // Populate dropdown with menu items 

    $(this).find('li').each(function() { 
     var el = $(this); 
     $("<option />", { 
      "text" : el.text() 
     }).appendTo(select); 
    }); 
}); 

1
$('.filterSection').each(function(){ 
     var section = $(this); 
     var select = $('<select class="locationFilterSelect" />') 
     select.appendTo(section); 
     //Create Default option "Select One" 
     $("<option />", { 
      "selected": "selected", 
      "value" : "", 
      "text" : "Select One" 
     }).appendTo(select); 
     // Populate dropdown with menu items  
     $(this).find('li').each(function(i,el) { 
      $("<option />", { 
       "text" : $(el).text() 
      }).appendTo(select); 
     }); 
    }); 

http://jsfiddle.net/tL5tD/

관련 문제