#jquery #arrays #loops #replace
#jquery #массивы #циклы #заменить
Вопрос:
$(".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'));
}
});
У меня есть несколько разделов с ключевыми словами в них. Мне нужно заменить ключевые слова изображениями, для которых src является ключевым словом. Однако я обеспокоен тем, что изображения, размещенные в промежутке, будут размещены во всех промежутках, называемых IT_Badge, отсюда цикл for и each. Я хочу, чтобы замена производилась поэтапно.
Ответ №1:
Вы не устанавливаете iconInst в массив каждый раз в первой итерации. Похоже, что iconInst не является массивом при второй итерации. Это опечатка? Я думаю, вы намеревались сделать
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'));
}
});
Если это так, пожалуйста, обновите вопрос, и мы продолжим оттуда, если нет, я не очень понимаю, с какой проблемой вы пытаетесь справиться.
Комментарии:
1. Извините, iconInst — это не массив, а просто имя класса, которое создается динамически, потому что мне нужно различать каждый экземпляр промежутков, к которым присоединено это имя класса. Мне нужно проанализировать / запустить сценарий замены для каждого экземпляра этих сегментов по отдельности. Хотя, если подумать, может быть, в этом нет необходимости? Я беспокоился, что замена заменит все содержимое span суммой всех заменяемых изображений, а не только конкретными изображениями span.