2017-02-01 3 views
0

У меня есть веб-страница с divs, которые содержат разные слова, и я хочу, чтобы эти div имели цвет фона, в зависимости от того, какое слово в нем. И слова делятся на две группы.Как перебирать разные div с разными массивами?

Так вот что я получил, но он работает только для первого цвета.

var animal = ['horse', 'cat', 'mouse', 'dog']; 

var i=0; 

for (; i<animal.length; i++) { 

    $("#div-position-a:contains('"+animal[i]+"')").each(function() { 

      $('#div-position-a').css("background","rgb(green)"); 

    }); 
} 

var soda = ['coke', 'sprite', 'fanta', 'pepsi']; 

var j=0; 

for (; j<soda.length; j++) { 

    $("#div-position-a:contains('"+soda[j]+"')").each(function() { 

      $('#div-position-a').css("background","rgb(red)"); 

    }); 
} 

Если таргетировать различные дивы, она работает, но страница поток дивы, так что новые дивы каждый день, которые замещают другие, поэтому разные места на странице много проверяется. На странице размещено 16 мест, а самая новая - сверху, и так далее.

Все, что очень важно.

ответ

0

Понял работает! У меня был цикл for для каждого(), а затем я изменил его, так что у меня был один для цикла со всеми() итерацией зеленого цвета() и один для цикла со всеми() красной итерацией цвета().

0

Измени петлю этой

$("#div-position-a:contains('"+animal[i]+"')").each(function() { 

     $(this).css("background","rgb(green)"); 

}); 
+0

Благодарим вас за ответ. Я узнал, что первый цикл выполняется, а второй игнорируется .... так что, возможно, я делаю это неправильно. Я пробовал с несколькими циклами, для всех div, которые могут быть зелеными, и выполняется только первый. – user3723269

+0

попробуйте не использовать каждую функцию и использовать массив и для – cralfaro

+0

Получил это! Спасибо за ваше время! У меня был цикл for для каждого(), а затем я изменил его, так что у меня был один для цикла со всеми() итерацией зеленого цвета() и один для цикла со всеми() красной итерацией цвета(). – user3723269

Смежные вопросы