[jquery] jQuery에서 <select>를 선택 해제하는 가장 좋은 방법은 무엇입니까?

<select size="2">
<option selected="selected">Input your option</option>
<option>Input your option</option>
</select>

jQuery를 사용하여 옵션을 우아하게 선택 해제하는 가장 좋은 방법은 무엇입니까?



답변

removeAttr 사용 …

$("option:selected").removeAttr("selected");

또는 소품

$("option:selected").prop("selected", false)


답변

여기에 많은 답변이 있지만 불행히도 모든 답변은 상당히 오래되어 attr/ / 의존 removeAttr하지 않습니다.

@coffeeyes 좋은 크로스 브라우저 솔루션을 사용하는 것으로 올바르게 언급하십시오.

$("select").val([]);

또 다른 좋은 크로스 브라우저 솔루션은

// Note the use of .prop instead of .attr
$("select option").prop("selected", false);

여기 에서 자체 테스트를 실행하는 것을 볼 수 있습니다 . IE 7/8/9, FF 11, Chrome 19에서 테스트되었습니다.


답변

그 이후로 오랜 시간이 걸렸으며 구형 브라우저에서 이것을 테스트하지는 않았지만 훨씬 간단한 대답은 다음과 같습니다.

$("#selectID").val([]);

.val ()이 아니라 선택 작동 http://api.jquery.com/val/


답변

가장 간단한 방법

$('select').val('')

나는 이것을 단순히 선택 자체에서 사용했고 트릭을 수행했습니다.

나는에있어 jQuery를 1.7.1 .


답변

지금까지 답변은 IE6 / 7의 다중 선택에 대해서만 작동합니다. 보다 일반적인 비 다중 선택의 경우 다음을 사용해야합니다.

$("#selectID").attr('selectedIndex', '-1');

이것은 flyfishr64로 연결된 게시물에서 설명됩니다. 그것을 보면, 다중 / 비 다중의 두 가지 경우가 있음을 알 수 있습니다. 완벽한 솔루션을 위해 두 가지를 모두 부르는 것은 아무것도 없습니다.

$("#selectID").attr('selectedIndex', '-1').find("option:selected").removeAttr("selected");


답변

오 jquery.

아직 네이티브 자바 스크립트 접근 방식이 있기 때문에 제공해야 할 필요가 있다고 생각합니다.

var select = document.querySelector('select'); //hopefully you'll use a better selector query
select.selectedIndex = 0; // or -1, 0 sets it to first option, -1 selects no options

그리고 이것이 얼마나 빠른지 보여 드리기 위해 : 기준


답변

$("#selectID option:selected").each(function(){
  $(this).removeAttr("selected");
});

이것은 각 항목을 반복하고 확인 된 항목 만 선택 취소합니다.