2009-02-23 9 views
11

Sé que esto es simple, pero no puedo entenderlo. Actualmente, el siguiente código devuelve "[object HTMLDivElement], [object HTMLDivElement]" Me gustaría que devuelva "div1, div2". ¿Alguna idea? Gracias chicos.Cómo devolver Element ID en lugar de [objeto HTMLDivElement] (Prototype.js)

<HTML> 
<HEAD> 
<script type="text/javascript" src="path_to/prototype.js"></script> 
<script> 
function linkClick() 
{ 
    alert($$('div.basic')); 
} 
</script> 
</HEAD> 
<BODY> 
    <div id="div1" class="basic" onclick="linkClick();"></div> 
    <div id="div2" class="basic" onclick="linkClick();"></div> 
</BODY> 
</HTML> 

Respuesta

2
var ids = $$('div.basic').collect(function(el) { return el.id; }); //array of ids 

alert(ids.join(',')); 

recoger es otro nombre para mapa, que es le permite transformar los elementos de un tipo de colección en otro tipo mediante la aplicación de una función "de selección" para cada uno.

+0

Para ser pedante: no necesita la parte ".join (',')". Los navegadores parecen hacer automáticamente al alertar() matrices, como muestra el ejemplo de askers. –

+0

Estaba bastante seguro de eso, pero pensé que sería más seguro en lugar de publicar un código que no funciona. Eso y yo era muy perezoso para comprobar :) – kwcto

1
alert($$('div.basic').invoke('identify').join(','); 

La invocación llamará a una función por su nombre. La función de identificación proporcionará la identificación. Cuando se le llama en una matriz, devolverá una matriz de sus identificadores. Unirse los convierte en una cadena con comas en el medio.

20

I tenían el mismo problema, no existe una solución simple:

Si varElement es su objeto que contiene un [HTMLDivElement] (u otro objeto DOM) simplemente añadir '.id'

por ejemplo

varElement.id 
+1

Esto es realmente brillante –

4

Hay una optimización en prototipo específicamente para esto:

$$('div.basic').pluck('id') 

Si leí tu pregunta correcta, que desea una lista de ID div, en lugar de una cadena de identificadores separados por una coma.

Cuestiones relacionadas