Так что, мне кажется, у вас возникла логическая проблема.Вы объявляете a и b непосредственно перед началом каждого цикла.
Вы представляете, что значения a и b изменяются внутри вашего цикла.но это не так.
Я бы порекомендовал вставить оператор печати, чтобы вы могли видеть, каковы значения A & B во время цикла.( этот код распечатывается, чтобы показать вам вашу ошибку )
var a = $('div.main a span').text();
var b = $('div.section ul li').text();
$('div.main').each(function() { // for each 'div.main'
alert("a is -> "+a+"\n b is -> "+b+"\n");
if (a === b) { // if these two variables match
$(this).css('color','red'); // color 'div.main' red
} else {
alert('no matches exist');
}
});
Вот пример динамического присвоения a и b, чтобы вы получили больше ожидаемого (а также обратите внимание наuse first (). Если вы сначала запустили приведенный выше код и увидели, что возвращали больше, чем вы ожидали, с вашими селекторами. ( этот код делает то, что вы хотите, чтобы он делал )
var a;
var b;
$('div.main').each(function() { // for each 'div.main'
a = $(this).find("a span").first().text();
b = $(this).find(".section ul li").first().text();
console.log(a);
if (a === b) { // if these two variables match
$(this).css('color','red');
} else {
alert('no matches exist');
}
});