13/08/2012, 11:11
|
| | | Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 5 meses Puntos: 127 | |
Respuesta: El método html en jquery devuelve sólo un elemento .children() de facto devuelve todos los nodos hijos o filtrados por el selector indicado, pero al agregarle .html() sólo es capaz de devolver el html() del primer elemento, esto es, sólo es capaz de devolver los elementos no selectivamente las propiedades de todos los elementos devueltos.
Para recoger las propiedades basta con hacer un bucle con todos los elementos devueltos, estos contienen las propiedades inherentes al objeto original.
Esto es aplicable tanto a html() como a val() o text()
nodoshijos = $(elemento).children();
arraydepropiedad = [];
$.each(nodoshijos,function(i,v){
arraydepropiedad[i] = $(v).html();
});
La probable explicación a esto es que las funciones de devolución de nodos como filter, find o children a su vez son capaces de devolver arrays pero funciones como html() o val() no crean en sí mismas arrays sino que devuelven valores aislados. La cuestión está en el funcionamiento del propio método.
Si se mira un poco jQuery.fn.init
[...]
return e.makeArray(a,this)}
Eso retorna un array, funciones como Children sólo filtran y devuelven a este objeto los nodos hijos para devolver crear y retornar un array-
Un saludo.
__________________ 21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
Última edición por dontexplain; 13/08/2012 a las 11:44 |