Итак, я создаю индикатор выполнения, но у меня возникает небольшая проблема. правила я пытаюсь выполнить:Добавить класс в родительский, если у всех childeren есть класс
для каждого li.page
проверки, если li.question = li.question.done
, если это правда .addClass
.done
к этому
Таким образом, в приведенном ниже HTML, # p1 должны быть сделаны классом, # p2 и p3 # не должны «т.
Текущий JS приводит к добавлению класса .done
ко всем .page
Ли на странице, если у одного .page
есть все вопросы.
Надеюсь, кто-то может помочь мне заставить это работать, вся помощь приветствуется!
Это HTML:
<ul class="pages">
<li id="p1" class="page">
<ul class="questions">
<li id="q2" class="question done">1</li>
<li id="q3" class="question done">2</li>
<li id="q4" class="question done">3</li>
</ul>
</li>
<li id="p2" class="page">
<ul class="questions">
<li id="q5" class="question current">4</li>
</ul>
</li>
<li id="p3" class="page">
<ul class="questions">
<li id="q6" class="question done">5</li>
<li id="q7" class="question">6</li>
</ul>
</li>
</ul>
И это JS:
var doneCheck = function(){
$(".page").each(function() {
questionsInPage = $(this).closest(".questions").find("li").length;
questionsDone = $(this).closest(".questions").find("li.done").length;
var done = questionsDone == questionsInPage;
$(".page").each(function() {
if (done) {
$(this).parent().addClass('done');
};
});
});
}
'.closest' ищет родителя, но' .questions' является дочерним элементом '.page'. – Barmar