No jQuery, qual é o equivalente document.getElementById("selectlist").value
?
Estou tentando obter o valor de um item da lista de seleção.
Obrigado.
No jQuery, qual é o equivalente document.getElementById("selectlist").value
?
Estou tentando obter o valor de um item da lista de seleção.
Obrigado.
Respostas:
"Equivalente" é a palavra aqui
Enquanto...
$('#selectlist').val();
...é equivalente a...
document.getElementById("selectlist").value
... vale a pena notar que ...
$('#selectlist')
... embora 'equivalente' não seja o mesmo que ...
document.getElementById("selectlist")
... como o primeiro retorna um objeto jQuery, não um objeto DOM.
Para obter o (s) objeto (s) DOM do jQuery, use o seguinte:
$('#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
O caos está no local, embora, para esse tipo de perguntas, você deva consultar a documentação do Jquery on-line - é realmente bastante abrangente. O recurso que você procura é chamado de 'seletores de jquery'
Geralmente você faz $('#ID').val()
- o .afterwards pode fazer várias coisas no elemento retornado do seletor. Você também pode selecionar todos os elementos em uma determinada classe e fazer algo com cada um deles. Confira a documentação para alguns bons exemplos.
Isso pode ser feito de três maneiras diferentes, embora todas sejam quase as mesmas
Maneira Javascript
document.getElementById('test').value
Jquery way
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
Para aqueles que se perguntam se os seletores de ID do jQuery são mais lentos que o document.getElementById, a resposta é sim, mas não por causa do preconceito de que ele pesquisa no DOM inteiro procurando por um elemento. O jQuery realmente usa o método nativo. Na verdade, é porque o jQuery usa uma expressão regular primeiro para separar as strings no seletor a serem verificadas e, é claro, executando o construtor:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Enquanto o uso de um elemento DOM como argumento retorna imediatamente com 'this'.
Então, é isso:
$(document.getElementById('blah')).doSomething();
Sempre será mais rápido que isso:
$('#blah').doSomething();
Em alguns casos em que não consigo me lembrar por que, mas $('#selectlist').val()
nem sempre retorna o valor correto do item, use-o $('#selectlist option:selected').val()
.