다음 코드가 작동합니다.
$("#select-id").change(function(){
var cur_value = $('#select-id option:selected').text();
. . .
});
두 번째 줄을 다음과 같이 리팩터링하는 방법 :
var cur_value = $(this).***option-selected***.text();
무엇을 위해 사용 ***option-selected***
합니까?
답변:
드롭 다운에서 onchange 이벤트를 선택하여 선택한 옵션을 얻을 수있는 가장 좋고 가장 짧은 방법은 다음과 같습니다.
$('option:selected',this);
값 속성을 얻으려면 :
$('option:selected',this).attr('value');
태그 사이에 표시된 부분을 얻으려면 :
$('option:selected',this).text();
샘플에서 :
$("#select-id").change(function(){
var cur_value = $('option:selected',this).text();
});
.context
jQuery 1.10부터 사용되지 않습니다.- api.jquery.com
var cur_value = $('option:selected',this).text();
이것은 작동합니다.
$(this).find('option:selected').text();
var cur_value = $(this).find('option:selected').text();
option
직계 자식이 될 가능성이 높기 때문에 select
다음을 사용할 수도 있습니다.
var cur_value = $(this).children('option:selected').text();
option-selected
따옴표없이 어디에서 얻 습니까 ...?
find('option:selected')
나를 위해 빈 문자열을 반환합니다. 어떤 버전의 jQuery가 필요합니까? 1.6.1에서 작업하고 있습니다. children('option:selected')
작동합니다.
option:selected
버전 1.0부터있어왔다 api.jquery.com/selected-selector
최선의 추측:
var cur_value = $('#select-id').children('option:selected').text();
나는이 경우에 아이들이 더 좋아진다. 왜냐하면 당신이 DOM 트리 아래로 한 가지만 가고 있다는 것을 알고 있기 때문이다.
그냥
$(this).val();
나는 jQuery가 당신이 필요한 것을 알만큼 충분히 영리하다고 생각합니다.
$("option:selected", this)
. 위에서 언급 한대로 시도했지만 문제가있었습니다. 버튼 클릭을 사용하여 선택한 옵션 요소 텍스트를 다른 div에 추가했지만 버튼을 클릭했을 때 실제로 선택한 요소가 변경되었습니다 ... 이상합니다. 이것을 사용하십시오.