Foros del Web » Programando para Internet » Jquery »

Cómo reemplazar función "forEach" por "$.each"

Estas en el tema de Cómo reemplazar función "forEach" por "$.each" en el foro de Jquery en Foros del Web. Hola Amigos... Estoy aprendiendo javascript y también jquery. El tema es que tengo una función con "forEach" que funcione para todos los navegadores menos para ...
  #1 (permalink)  
Antiguo 02/01/2013, 18:38
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años, 6 meses
Puntos: 2
Cómo reemplazar función "forEach" por "$.each"

Hola Amigos... Estoy aprendiendo javascript y también jquery.
El tema es que tengo una función con "forEach" que funcione para todos los navegadores menos para i.e.8 y por lo que se si lo paso a "$.each" probablemente funciona correcto para todos.
Les pido su valiosa ayuda a su solución.

Función Original: con "forEach"

Código:
   //iterate list trunks/branches
    function listBranches(trunk) {
        var $trunk = $("<ul>", { "data-level": ++level });
        trunk.forEach(function (branch) {
            var $wrapper = $("<div>", { "data-level": level });
            var $branch = $("<li>", $.extend(branch.props, { "data-level": level }));
            if (branch.sub) listBranches(branch.sub).appendTo($branch);
            $branch.appendTo($wrapper); $wrapper.appendTo($trunk);
        });
        level--;
       return $trunk;
    }
*


La misma función que falta completar: con "$.each"

Código:
    //iterate list trunks/branches
    function listBranches(trunk) {
        var $trunk = $("<ul>", { "data-level": ++level });
        $.each(trunk, function(i, branch) {

 ...
 ...       ¿Cómo puedo completar aquí correctamente, porfavor?

        });
        level--;
        return $trunk;
    }
  #2 (permalink)  
Antiguo 02/01/2013, 18:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Generalmente, allí no hace falta que cambies nada.

Te lo indiqué en el otro tema: http://www.forosdelweb.com/f13/probl...6/#post4340236
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 02/01/2013, 19:21
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Bueno, David... creía que era lo único para poder visualizar el plugin en explorer 8. Voy a ver algún profe (no más por internet) que me pueda terminar de ayudar porque sí entiendo solo hasta cierto punto. La verdad que me interesa poder llegar al éxito con este tema. Gracias por todo, ya no voy a pedir más ayuda para este problema.

mikehove.-
  #4 (permalink)  
Antiguo 03/01/2013, 06:34
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Usa un un 'polyfill', que básicamente es un parche para implementar algun feature que el browser no soporta nativamente.

De cualquier manera $.each y Array.forEach son dos cosas distintas.

En este link tenés la documentación y un polyfill:
https://developer.mozilla.org/en-US/.../Array/forEach
__________________
blog | @aijoona
  #5 (permalink)  
Antiguo 03/01/2013, 09:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Cita:
Iniciado por mikehove Ver Mensaje
Gracias por todo, ya no voy a pedir más ayuda para este problema.
Qué lástima que no lo hayas logrado. Éxitos.
Cita:
Iniciado por Aijoona Ver Mensaje
De cualquier manera $.each y Array.forEach son dos cosas distintas.
Cierto, pero en este caso en particular son perfectamente intercambiables.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 03/01/2013, 14:07
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Sinceramente David, entendí que gracias a vos y a otras personas esta bien escrito el cambio de $.each(), como se muestra:

Código:
//iterate list trunks/branches
    function listBranches(trunk) {
        var $trunk = $("<ul>", { "data-level": ++level });
        
          $.each(trunk, function(i, branch)  {
            var $wrapper = $("<div>", { "data-level": level });
            var $branch = $("<li>", $.extend(branch.props, { "data-level": level }));
            if (branch.sub) listBranches(branch.sub).appendTo($branch);
            $branch.appendTo($wrapper); $wrapper.appendTo($trunk);
        });
        level--;
        return $trunk;
    }
Sí funciona! Ahora se puede ver un poco más en Explorer 8. Aun tengo errores y se que falta poquito, por dios, jee... falta poco para solucionarlo, llegar a ese éxito que tanto busco y no entiendo cuál es la falla.

Fiddle original (todos los naveg. menos explorer):
http://jsfiddle.net/fiddleyetu/d4aQ2/4/

Este es fiddle conseguido (para explorer):
http://jsfiddle.net/d4aQ2/15/

Ya pedí demasiada ayuda... Pero el quien sienta darme ese toque de ayuda para el éxito muy agradecido voy a estar.

mikehove.-

Última edición por mikehove; 03/01/2013 a las 14:17
  #7 (permalink)  
Antiguo 03/01/2013, 14:36
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Cómo reemplazar función "forEach" por "$.each"

Esto debería funcionar:
http://jsfiddle.net/n3fwe/
El método some() de Array tampoco es soportado por IE8.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 03/01/2013, 14:46
 
Fecha de Ingreso: abril-2012
Ubicación: Argentina
Mensajes: 215
Antigüedad: 12 años, 6 meses
Puntos: 2
Respuesta: Cómo reemplazar función "forEach" por "$.each"

David realmente gracias. Disculpame lo insistente. Hay un mundo muy grande por conocer, y este en particular, es waww... de apoco voy conociendo.

Lo que sí me gustaría compartir , en forma de agradecimiento, este link de algunas creaciones propias de piano (una de mis pasiones más grandes):
http://www.youtube.com/watch?v=UK64SO8NmhY

Buen año!!! Y gracias, gracias! A vos y a los que colaboraron para ayudarme.

mikehove.-

Etiquetas: javascript, js
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:46.