¿Cuál es el equivalente de jQuery para cada ():
$(".element").each(function(){ // do stuff }); al adjuntar una función a un solo elemento, como #element ?
Siempre puede hacer referencia al objeto jQuery en una variable:
var $el = $('#element');... luego manipularlo.
$el.doSomething(); // call some jQuery methods from the cached object $el.doSomethingElse(); Si la razón por la que quería .each() era hacer referencia al elemento DOM como this , realmente no necesita la palabra clave this para hacerlo, simplemente puede tomar el elemento DOM del objeto jQuery.
var element = $('#element')[0]; // both of these give you the DOM element var element = $('#element').get(0); // at index 0 Los dos son equivalentes y recuperarán el elemento DOM al que se hace referencia como this en .each() .
alert( element.tagName ); // alert the tagName property of the DOM element alert( element.id ); // alert the ID property of the DOM elementMe gustaría señalar que no es necesariamente malo usar cada uno para iterar sobre un solo elemento.
Los beneficios son que tiene fácil acceso al elemento DOM, y puede hacerlo en un nuevo ámbito para no saturar el espacio de nombres circundante con variables.
Hay otras formas de lograr esto también. Toma este ejemplo:
(function( $ ) { // Inside here, "this" will refer to the DOM element, // and the "$" parameter, will reference the jQuery library. alert( this.tagName ); // Any variables you create inside will not pollute the surrounding // namespace. var someVariable = 'somevalue'; // is local to this function }).call( $('#element')[0], jQuery );Para responder directamente a su pregunta, .each() funciona normalmente en conjuntos de elementos de cualquier tamaño, incluido 1.
También puede omitir la llamada .each() completo y simplemente llamar a los métodos jQuery en $('#element') . Recuerde que puede encadenar la mayoría, si no todas, las llamadas al método jQuery a medida que devuelven el objeto jQuery. Esto incluso funciona en múltiples elementos para el asunto, dependiendo de lo que hagan los métodos.
$('#element').doSomething().doSomethingElse();Si necesita hacer referencia al objeto varias veces, cree una variable:
var $elm = $('#element'); $elm.doSomething(); doSomethingElse($elm);Usa first() .
each() coincide con todos los elementos, mientras que first() coincide solo con el primero.
También hay otros selectores. Cuando usa la identificación en el selector, solo obtendrá un elemento. Esta es la principal diferencia entre .element y #element . La primera es una clase que se puede asignar a muchos elementos, mientras que la segunda es una identificación que pertenece solo (como máximo) a un elemento.
Todavía puede usar cada uno si solo se devuelve un elemento (o 0). Además, puede omitir cada uno por completo si desea vincular un evento. Utiliza each cuando desea ejecutar una función específica para cada elemento en la lista de elementos.