답변:
우선-그 선택기는 꽤 느립니다. ID를 찾는 모든 DOM 요소를 스캔합니다. 요소에 클래스를 할당 할 수 있으면 성능 저하가 적습니다.
$(".myselect")
질문에 대답하기 위해 jQuery에서 선택 요소 값을 변경하는 몇 가지 방법이 있습니다.
// sets selected index of a select box to the option with the value "0"
$("select#elem").val('0');
// sets selected index of a select box to the option with the value ""
$("select#elem").val('');
// sets selected index to first item using the DOM
$("select#elem")[0].selectedIndex = 0;
// sets selected index to first item using jQuery (can work on multiple elements)
$("select#elem").prop('selectedIndex', 0);
#an-id
빠르지 만 *[id$=ends-with]
입니다 방법 느린은 "요소에 클래스를 할당"어떻게 그게 전부는 의미입니다
방금 이것을 발견하면 저에게 효과적이며 개인적으로 읽기가 더 쉽습니다.
이것은 gnarf의 답변 번호 3 옵션과 같이 실제 색인을 설정합니다.
// sets selected index of a select box the actual index of 0
$("select#elem").attr('selectedIndex', 0);
이것은 작동하지 않았지만 지금은 ... 버그를 참조하십시오 : http://dev.jquery.com/ticket/1474
의견에서 권장하는대로 다음을 사용하십시오.
$("select#elem").prop('selectedIndex', 0);
.prop('selectedIndex', 0);
.attr()
2015 년 에이 답변을 작성 중이며 어떤 이유로 (아마도 이전 버전의 jQuery) 다른 답변은 저에게 도움이되지 않았습니다. 그들은 선택한 인덱스를 변경하지만 실제로 실제 드롭 다운을 반영하지는 않습니다.
색인을 변경하고 드롭 다운에 반영하는 다른 방법은 다음과 같습니다.
$('#mydropdown').val('first').change();
prop('selectedIndex', ...);
에는 선택을 변경하는 데 아무런 문제가 없습니다 (Chrome 및 Firefox에서 테스트 됨).
change
드롭 다운,도 호출하여 선택을 변경하는 사람들을위한 유용한 수정 / 해결 방법이 될 수에 이벤트 prop('selectedIndex', ...)
보다는를 val(...)
. 아마도 문제는 당신이 change
이벤트를 듣고 있다는 것이고, 그것이 당신 에게 효과가 없었던 것입니까? prop
erty 를 바꾸는 것만으로 도 어떤 사건도 발생하지 않을 것입니다 ...