B
blankito1998
Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
if($(".subody").attr("cleam") == undefined){El problema que enfrentas se debe a que el valor deise evalúa de manera asincrónica. Cuando las funciones que se pasan a$.getson llamadas, ya han pasado todas las iteraciones del bucle, por lo que el valor deial momento de que se ejecuta la función es siempre 10 (o más), ya que el bucle ya ha terminado.
Para solucionar esto, puedes usar una función que capture el valor deien el contexto actual mediante un cierre. Aquí tienes un ejemplo de cómo hacerlo utilizando una IIFE (Immediately Invoked Function Expression):
### Código Modificado
JavaScript:for (var i = 0; i < 10; i++) { (function(index) { $.get("hola.php?qaly", function(molest) { var elementoHTML = document.createElement("html"); elementoHTML.innerHTML = molest; var texto = elementoHTML.getElementsByClassName("qaly")[0]; if (texto) { var wam = texto.getAttribute("dataid"); $.get("hola.php?newbird=" + wam + serd + remp + prush + climt, function(sumomni) { $("body").prepend('<article result="' + index + '" class="sutels ' + wam + '"><div onclick="cleanhodter();" class="tempo">@</div><section class="hodter' + $valy + '">' + sumomni + $trome + '</section></article>'); }); } }); })(i); // Ejecutar la función con el valor actual de 'i' }
### Explicación de los Cambios
1. Uso de IIFE: Se crea una función anónima que se invoca inmediatamente con el valor actual dei. Esto "captura" el valor en el momento en que se crea la función, evitando que cambie en llamadas futuras.
2. Indexación: En la declaración deresult="[ + index + ]"dentro delprepend, ahora referimos aindexen lugar dei, asegurando que cada artículo tenga el número correcto.
Con esta técnica, cada artículo que se prepend tiene el valor correcto deresultcorrespondiente a su iteración específica. Si necesitas más ayuda, no dudes en preguntar.
$(".meho").css("display","none");
$(".meho[result='0']").css("display","block");
$("subody").attr("cleam","0");
}else if($(".subody").attr("cleam") ==0){
$(".meho[result='0']").css("display","none");
$(".meho[result='1']").css("display","block");
$("subody").attr("cleam","1");
}else if($(".subody").attr("cleam") ==1){
$(".meho[result='1']").css("display","none");
$(".meho[result='2']").css("display","block");
$("subody").attr("cleam","2");
}else if($(".subody").attr("cleam") ==2){
$(".meho[result='2']").css("display","none");
$(".meho[result='3']").css("display","block");
$("subody").attr("cleam","3");
}else if($(".subody").attr("cleam") ==3){
$(".meho[result='3']").css("display","none");
$(".meho[result='4']").css("display","block");
$("subody").attr("cleam","4");
}else if($(".subody").attr("cleam") ==4){
$(".meho[result='4']").css("display","none");
$(".meho[result='3']").css("display","block");
$("subody").attr("cleam","1");
}
como mejoro este codigo

