2010-07-28 10 views
7

En jQuery, es fácil seleccionar elementos como una matriz.Devuelve el atributo de los elementos coincidentes en una matriz usando jQuery

$ ("a"); // devuelve como elementos de serie de anclajes

Pero, ¿es posible seleccionar elementos coincidentes atributos como matriz?

Actualmente tengo que hacer algo como ...

links = [];

$ ("a") cada uno (function() {

href = $(this).attr("href"); 
links.push(href); 

}).;

¿Hay algún método mejor para llenar las variables enlaces con href de las anclas todos emparejados?

Respuesta

18

Uso $ .map de este modo:

var links = $('a').map(function() { return this.href }).get() 
+2

+1 - Usted necesitará un '.get()' en el extremo, pero este es el enfoque correcto. –

+0

Ah, gracias, simplemente hice '[0]' y asumí que era una matriz cuando en realidad era un objeto similar a un array construido por jquery. –

+1

Esto parece un poco detallado para una biblioteca cuyo propósito parece enmascarar este tipo de gimnasia del programador. ¿Por qué esto simplemente no devuelve una matriz: var links = $ ('a'). Attr ('href'); ¿No sería eso más limpio y más legible? (considere esto como mi sugerencia para la próxima iteración de jQuery ...) –

5
var links = $("a").map(function(){return $(this).attr("href")}).get(); 
+0

Este enfoque funciona muy bien para los atributos '' data'' personalizados como '' data-id'', '' data-name'', etc. – iiminov

Cuestiones relacionadas