[jQuery-es] Una pequeña duda
Javier Infante Porro
jabi en irontec.com
Lun Jun 18 12:45:55 PDT 2007
El lun, 18-06-2007 a las 14:42 -0400, Reynier Perez Mira escribió:
> Hola listeros:
Buenas!
> Como estoy aprendiendo un poco de jQuery pues un amigo mio me ha pedido que le haga algo con el DOM, crear dinámicamente un elemento de tipo INPUT. Como aún no se mucho de jQuery me he decantado por la función "append" pero no se como pasarle parámetros para construir el elemento. Lo que he hecho es lo siguiente:
>
> $(document).ready(function() {
> $("a.clicme").click(function() {
> $("#rating").append('<input type="text" name="nombre" value="valoe">');
> });
> });
>
> Ahí funciona perfecto. Cuando hago clic sobre el enlace que tiene como clase clicme me aparece en el elemento con ID rating un INPUT con las características dadas. Lo que pasa es que eso se está construyendo con PHP y esta dentro de un ciclo foreach donde se incremente un valor. Así cuando vaya a crear el elemento INPUT para la 5ta fila el nombre deberia ser nombre5 y el value valor5 y así sucesivamente. ¿Cómo puedo hacer esto? ¿Existe alguna mejor forma de hacerlo?
Creo que lo que buscas es algo así
$(document).ready(function() {
$("a.clicme").each(function(indice) {
$(this).bind("click",function() {
nIndice = indice+1; // Ya que los idnices empiezan por 0
$("#rating").append('<input type="text" name="nombre'+nIndice+'" value="valor'+nIndice+'">');
});
});
});
En vez de dejar a Jquery "recorrer" el array de los enlaces con clase
clicme, recórrelos tu ya que la funcion each te dice el orden del mismo
a través de un parámetro para la funcion a ejecutar por cada uno de
ellos.
Además creo que el siguiente selector:
$("a.clicme:eq(2)")
puede resultarte bastante interesante (yo lo uso bastante vamos).
Espero que te sirva,
Un saludo
--
Javier Infante
Dpto. Internet y Desarrollo
Irontec, Internet y sistemas sobre GNU/Linux - http://www.irontec.com
+34 94 404 81 82 - Ext. 202
Más información sobre la lista de distribución jquery-es