jQuery.длина li с несколькими ul

#jquery

#jquery

Вопрос:

Я пытаюсь получить li.length для каждого ul на сайте. Теперь я получаю общее количество всех li.(8)

Я хочу, чтобы это было так: ul#1 : 4 ul#2 : 2 ul#3 : 2

 $( "li.first:contains('Brazil')" ).addClass( "correct" );
$( "li.second:contains('Croatia')" ).addClass( "correct" );
$( "li.third:contains('Mexico')" ).addClass( "correct" );
$( "li.fourth:contains('Cameroon')" ).addClass( "correct" );

var n = $("li.correct").length;
$( "#groupa" ).append( "<p>You got:  "   n   " points.</p>");
  

Смотрите Скрипку здесь

Комментарии:

1. var n = $(«.правильно»). длина;

2. не понял, что именно вы хотите?

Ответ №1:

Вы можете выполнить итерацию по каждому ul, а затем найти в них длину li, используя:

 $('ul').each(function(){
  alert($('li',this).length);
     //or
  alert('ul#' $(this).index() ':' $('li',this).length);
});
  

Рабочая демонстрация

Комментарии:

1. Спасибо! Это было именно то, чего я хотел.

Ответ №2:

Подсчитайте количество «правильных» классов:

var n = $(«.правильно»).длина;

Комментарии:

1. чем отличается от OP: var n = $(«li.correct»). длина;

2. поскольку он ищет li.first .correct , li.second .correct, li.third .correct li.fourth .correct , нет $(‘li.correct’), т. Е. Он ссылается на него неправильно и никогда не получит счет, потому что эти объекты не существуют. Просто проверяя .correct , он получает все, к чему он добавил класс «correct»

3. Однако вопрос OP является неполным и не содержит разметки HTML, поэтому я могу понять, почему этот ответ может быть неправильным приложением к их потребностям или что я понял его по-другому