Pregunta

Una vez vi un texto sobre jQuery que indica que en jQuery algunas propiedades tienen diferentes nombres. Creo que fue la propiedad de valor a la que se accede en jQuery como Val o algo así. ¿JQuery hace esto mucho? ¿Es una práctica común de jQuery para cambiar los nombres de propiedades?

¿Fue útil?

Solución

JQuery no cambia ningún nombre de propiedad.

jQuery implementa sus propios métodos en objetos jQuery. Esos están completamente separados de las propiedades DOM o los métodos DOM.

Por ejemplo, puede recuperar el valor de cualquier control de entrada de un objeto jQuery utilizando el .val() método. Internamente, el .val() El método en el objeto jQuery accede al contenido del objeto DOM (tal vez usando el .value propiedad), pero no está reemplazando esa propiedad DOM de ninguna manera. Sigue ahí, ¿estás eligiendo usarlo en su lugar?

Del mismo modo, jQuery tiene un .html() método que devuelve el innerHTML de un objeto. Nuevamente, este es el método jQuery en un objeto jQuery y no reemplaza la propiedad DOM innerHTML de cualquier manera.

Aquí hay algunos ejemplos de código para ilustrar:

<input id="test" type="text">
<div id="title">This is my Title</div>

Usando JavaScript simple:

var text = document.getElementById("test").value;
var title = document.getElementById("title").innerHTML;

Usando jQuery:

var text = $("#test").val();
var title = $("#title").html();

Observe que ambas formas jQuery son llamadas de método, no propiedades.

Incluso cuando se usa objetos jQuery, puede sacar el objeto DOM del objeto jQuery usando el .get(n) método y usar la propiedad DOM, aunque generalmente no hay una razón para hacerlo:

var text = $("#test").get(0).value;
var title = $("#title").get(0).innerHTML;

Otros consejos

JQuery no cambia los nombres de propiedad. JQuery devuelve las instancias jQuery, no los elementos DOM.

Si lo haces $thing[0].value funcionará. Si lo haces $thing.prop("value") funcionará.

Si utiliza $thing.val(); que es el método Val de JQuery (que es "amable" de Val, pero también hace un montón de Magic de Case Edge de Weird), entonces "probablemente" le devolverá el valor del elemento DOM envuelto.

No es que conozca, el caso de val se debe a que le permite establecer o obtener el valor de todos los campos de formulario (campos de texto, botones de radio, casillas de verificación, textura, etc.) algo que posiblemente no sea simplemente haciendo input.value en todos los casos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top