En jQuery, ¿a qué equivale document.getElementById("selectlist").value
?
Estoy tratando de obtener el valor de un elemento de lista seleccionado.
Gracias.
En jQuery, ¿a qué equivale document.getElementById("selectlist").value
?
Estoy tratando de obtener el valor de un elemento de lista seleccionado.
Gracias.
Respuestas:
"Equivalente" es la palabra aquí
Mientras...
$('#selectlist').val();
...es equivalente a...
document.getElementById("selectlist").value
...Vale la pena señalar que...
$('#selectlist')
... aunque 'equivalente' no es lo mismo que ...
document.getElementById("selectlist")
... ya que el primero devuelve un objeto jQuery, no un objeto DOM.
Para obtener los objetos DOM del jQuery, use lo siguiente:
$('#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
El caos es perfecto, aunque para este tipo de preguntas debe consultar la documentación de Jquery en línea: realmente es bastante completo. La característica que busca se llama 'selectores jquery'
Generalmente lo hace $('#ID').val()
: el .after puede hacer varias cosas en el elemento que se devuelve desde el selector. También puede seleccionar todos los elementos en una clase determinada y hacer algo con cada uno de ellos. Consulte la documentación para ver algunos buenos ejemplos.
Se puede hacer de tres maneras diferentes, aunque todas son casi iguales.
Forma Javascript
document.getElementById('test').value
Camino jquery
$("#test").val()
$("#test")[0].value
$("#test").get(0).value
Para aquellos que se preguntan si los selectores de id jQuery son más lentos que document.getElementById, la respuesta es sí, pero no por la preconcepción de que busca en todo el DOM buscando un elemento. jQuery realmente usa el método nativo. En realidad, es porque jQuery usa primero una expresión regular para separar las cadenas en el selector para verificar y, por supuesto, ejecutar el constructor:
rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/
Mientras que el uso de un elemento DOM como argumento vuelve inmediatamente con 'esto'.
Así que esto:
$(document.getElementById('blah')).doSomething();
Siempre será más rápido que esto:
$('#blah').doSomething();
En algunos casos de los cuales no recuerdo por qué, pero $('#selectlist').val()
no siempre devuelvo el valor correcto del artículo, así que lo uso $('#selectlist option:selected').val()
en su lugar.