Iteración + script de reemplazo

$(".IT_Badge").each(function(){
    var badges = $(".IT_Badge").val().trim().split(",");
    for (c = 0; badges.length > c; c++) {
        currentBadge = badges[c];
        currentBadge.replaceWith($("<img/>").attr("src", 'IT_Badges/' + badges[c] + '.png'));
    }
});

Tengo varios intervalos con palabras clave en ellos. Necesito reemplazar las palabras clave con imágenes cuyo src es la palabra clave. Sin embargo, me preocupa que las imágenes colocadas en el tramo se coloquen en todos los tramos llamados IT_Badge, de ahí el bucle for y el each. Quiero que el reemplazo se realice tramo por tramo.

preguntado el 16 de mayo de 11 a las 18:05

1 Respuestas

No está configurando iconInst en una matriz cada vez en la primera iteración. Parece que iconInst no es una matriz en la segunda iteración. ¿Es esto un error tipográfico? Creo que tenías la intención de hacer

var iconInst = [];
$(".IT_Badge").each(function(i, el){
    iconInst.push($(this).addClass('Inst' + i));
});

iconInst.each(function(){
    var badges = $(this).val().trim().split(",");
    for (c = 0; words.length > c; c++) {
        $(this).contents().replaceWith($("<img/>").attr("src", 'Icon/' + badges[c] + '.png'));
    }
});

Si ese es el caso, actualice la pregunta y continuaremos desde allí, de lo contrario, no tengo muy claro cuál es el problema que está tratando de resolver.

contestado el 16 de mayo de 11 a las 22:05

Lo siento, iconInst no es una matriz, solo un nombre de clase que se crea dinámicamente porque necesito distinguir entre cada instancia de los intervalos a los que se adjunta ese nombre de clase. Necesito analizar / ejecutar el script de reemplazo para cada instancia de estos intervalos de forma individual. Sin embargo, pensándolo bien, ¿tal vez no sea necesario? Me preocupaba que el reemplazo reemplazara todo el contenido del tramo con la suma de todas las imágenes de reemplazo en lugar de solo las específicas del tramo. - C_K

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.