2011-08-10 10 views
2
jQuery(document).ready(function() { 

    $lstAccountType = $('select[id*="account_type"]'); 

    $lstAccountType.change(function() { 
    $(this).remove('option[text="select one"]') 
    }); 

}); 

클릭하면 드롭 다운 목록에서 첫 번째 요소를 제거하고 싶습니다. 누구든지 이것에 관해서 어떤 조언을 가지고 있습니까?Jquery 드롭 다운 목록에서 항목 제거

+0

이 하나가 나를 위해 일했습니다. –

답변

7

당신은 사용할 수 있어야합니다 :

$lstAccountType.change(function() { 
    $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove(); 
}); 

나는이 테스트를하지 않은,하지만이 이동을하고 어떤 좋은인지 아닌지 알려주세요?

편집

당신은 단지마다 당신이 시도 할 수있는 첫 번째 옵션을 제거 할 경우 :

$lstAccountType.change(function() { 
    if ($lstAccountType.find("option:first").attr("value") == $lstAccountType.val()) { 
     $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove(); 
    } 
}); 

그것은 정리하는 몇 가지가 필요하지만, 희망 그것은 도움이 될 수 있습니다.

편집

당신은 당신이 할 수있는 한 번만 첫 번째 옵션 제거하려면 :

var first_option_removed = false; 
$lstAccountType.change(function() { 
    if (!first_option_removed) { 
     if ($lstAccountType.find("option:first").attr("value") == $lstAccountType.val()) { 
      $lstAccountType.find("option[value='"+$lstAccountType.val()+"']").remove(); 
      first_option_removed = true; 
     } 
    } 
}); 
+0

이것에 대해 생각해 본 결과, 선택한 각 옵션이 제거됩니다. ($ ("# list [value = 'elementid']") remove()); 내가 상상하는 것은 당신이 찾고있는 것이 아닙니다. 나는 나의 대답을 업데이트 할 것이다. –

0
$(this).remove('option:first') 

항상 첫 번째를 제거하고 싶다면 트릭을해야합니다.

편집 :

$(this).remove('option:contains(select one)'); 

텍스트에 그것을해야한다.

+0

텍스트 기반으로 제거하고 싶습니다. – JBone

0

을 아니면 쉽게 읽을 수 뭔가를 원한다면, 당신은 아마 이후 onFocus을 바인딩 할 것을 기억 당신은 이 선택되면 즉시 첫 번째 목록 항목을 제거하고자합니다.

$('#mySelectId').bind('focus' function(){ 
    var listItems = $('#mySelect li'); 
    if(listItems.length > 0){ 
     $(listItems[0]).remove(); 
    } 
}); 
관련 문제