По какой-то причине я просто не могу понять, как сказать jQuery посмотреть на каждый div в группе, а затем принять решение на основе только содержимого этого div.
У меня есть HTML вроде этого:
<div id="maintable">
<div class="elbox">
content
<div class="options">A,B,C</div>
</div>
<div class="elbox">
content
<div class="options">B,F</div>
</div>
<!-- and about a hundred more just like these -->)
</div>
<div id="menutable">
<div class="optionA">A</div>
<div class="optionB">B</div>
<div class="optionC">C</div>
</div>
Я хочу создать функцию наведения, которая делает это:
- При наведении курсора на #menutable .optionA
- Скрипт сканирует все #maintable .options div для текстовой строки "A"
- Если в div.options обнаружена буква "A", ничего не происходит
- Если нет "A"находится в div.options, скрипт добавляет немного CSS к родительскому div (.elbox)
- Удалить новый класс при наведении мыши
- Сделать аналогично при наведении курсора на .optionB (ищите" B "") и .optionC (ищите" C ")
Пока у меня есть это:
$('.menutable').hover(function() {
$('.options').each(function(i) {
if (!$(".options:contains('A')")) {
$('.elbox').addClass('bgtransp');
}
});
});
Но это не работает.
Однако, если я переверну логику так, чтобы addClass происходил, если найдено "A" , класс применяется везде к каждому .elbox.Итак, я думаю, что мой сценарий мог бы на самом деле сказать: «если у любого .options div есть« A », то скрыть все .elbox.
Что я делаю не так? Это мой« каждый »?отсутствует родительский селектор? ... Или просто неправильный подход полностью?
С извинениями за мою нелюбовь (я над этим работаю), СПАСИБО!