jQuery를 사용하여이 작업을 수행하는 방법-document.getElementById (“selectlist”). value


141

jQuery에서 document.getElementById("selectlist").value?에 해당하는 것은 무엇입니까?

선택 목록 항목의 값을 얻으려고합니다.

감사.


10
Google에서 몇 초 안에 또는 JQuery 문서를 읽음으로써 질문에 대한 답변을 얻을 수 있기 때문에 공감대에 빠질 수 있습니다.
zombat

53
SO 사용자에게 용기를주기 위해 편도선 +1 그의 질문은 해결하기가 얼마나 쉽고 힘든지에 관계없이 완벽하게 유효한 질문입니다. 이 주제에 대한 향후 검색을 위해 더 많은 SO 트래픽.
Mr. Smith

7
c'mon guys-jQuery voodoo는 나와 같은 노인, 지난 20 년 동안 사용해온 서버 개발자들에게는 배우기 쉽지 않습니다. :-)
marc_s

1
@Boekwurm Ben-그는 용감하지만 SO 사용자를 비난 할 수는 없습니다. 사람들은 일반적으로 질문을하는 사람이 약간의 노력을하는 것을 좋아합니다.
zombat

12
내가 기억하는 것처럼, 이것이 jQuery에 대해 얻지 못한 첫 번째 일이었습니다. 나는 진실을 말하고 그것을 표시하는 것이 가혹한 경우에는 유효한 질문이라고 생각합니다. stackoverflow.com/questions/75296/…
제임스 Wiseman

답변:



214

"동등한"이란 단어입니다

동안...

$('#selectlist').val();

...와 같습니다.

document.getElementById("selectlist").value

... 그것에 주목할 가치가 있습니다 ...

$('#selectlist')

... '동등'은 같지 않지만 ...

document.getElementById("selectlist")

... 전자는 DOM 객체가 아닌 jQuery 객체를 반환합니다.

jQuery 객체에서 DOM 객체를 가져 오려면 다음을 사용하십시오.

$('#selectlist').get(); //get all DOM objects in the jQuery collection
$('#selectlist').get(0); //get the DOM object in the jQuery collection at index 0
$('#selectlist')[0]; //get the DOM objects in the jQuery collection at index 0

1
여기에 약간 접선이 있지만 이것은 훌륭한 정보가 될 것입니다 : jQuery 객체에서 DOM 객체를 얻는 방법이 있습니까? 편집 : 편집 에서 내 자신의 질문에 대답했습니다.
Clayton Hughes

4
getElementById ()를 $ ()로 바꿀 수 없다는 것을 깨달을 때까지 한 시간 동안 벽에 머리를 댔다. 이 답변에 정말 감사합니다!
knite

3
@knite-예. jQuery를 처음 사용할 때 누군가에게 설명해 주었으면합니다.
James Wiseman

1
jquery에서 DOM 객체를 얻는 것에 대한 후반부 설명에 감사드립니다 :).
kailash19

+1 Oldie이지만 goodie. Google Maps가 왜 DOM 객체를 허용했지만 jQuery 객체는 허용하지 않는지 알아 내려고했습니다. 빠른 Google 검색으로 jQuery 문서가 아닌 여기로 안내되었습니다.
TonyG

9

이러한 종류의 질문에 대해서는 Jquery 설명서를 온라인으로 확인해야합니다. 혼합 은 매우 포괄적입니다. 당신이 추구하는 기능을 'jquery selectors'라고합니다

일반적으로 $('#ID').val().after는 선택기에서 반환 된 요소에서 여러 가지 작업을 수행 할 수 있습니다. 특정 클래스의 모든 요소를 ​​선택하고 각 요소에 대해 무언가를 수행 할 수도 있습니다. 좋은 예는 설명서를 확인하십시오.


9

세 가지 방법으로 수행 할 수 있지만 모두 거의 동일합니다.

자바 스크립트 방식

document.getElementById('test').value

jquery 방법

$("#test").val()          

$("#test")[0].value             

$("#test").get(0).value

이것이 가장 좋은 대답입니다. 감사합니다!
카터 메 드린

2

jQuery id 선택기가 document.getElementById보다 느린 지 궁금해하는 사람들에게는 대답은 '그렇지만'요소를 찾는 전체 DOM을 통해 검색한다는 선입견 때문이 아닙니다. jQuery는 실제로 기본 메소드를 사용합니다. 실제로 jQuery는 먼저 정규 표현식을 사용하여 선택기에서 문자열을 분리하여 확인하고 물론 생성자를 실행하기 때문입니다.

rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/

DOM 요소를 인수로 사용하면 'this'와 함께 즉시 반환됩니다.

그래서 이거:

$(document.getElementById('blah')).doSomething();

항상 이것보다 빠릅니다.

$('#blah').doSomething();

0

어떤 경우에는 이유를 기억할 수 없지만 $('#selectlist').val()항상 올바른 항목 값을 반환하지는 않으므로 $('#selectlist option:selected').val()대신 사용 합니다.


어쩌면 이것을 확인하는 링크를 다시 게시 할 수 있습니다. 그러나 나는 놀랐다. 이것은 jQuery의 근본적인 버그입니다. 버그가있는 버전의 라이브러리를 사용하고 있습니까?
James Wiseman

제임스 일 수 있었을 수도 있습니다 .1.3.0에 있었을 수도 있고 1.3.2에 재현 할 수없는 것 같지만 더 이상 설치하지 않은 IE6 또는 7에있을 수도 있습니다. 원래 원인을 찾아 여기에보고 할 수 있다면
Brett Ryan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.