jQuery .find ('li'). Длина должна быть от родного брата / ребенка? - PullRequest
0 голосов
/ 10 февраля 2020

Я пытаюсь создать счетчик для подсчета количества li, но то, что я хочу подсчитать, лежит в другом элементе (разделе), и моя настройка jQuery с .find ('li'). Length; не хочу работать (я взял его из другого счетчика, который сделал для меня мой учитель, это работает). Должны ли элементы, которые я хочу считать, быть братьями и сестрами или детьми, чтобы это работало?

это похоже на то, что работающий в основном построен так в html

<div>
<div><span>0</span></div>
<ul>
<li></li>
</ul>
</div>

, в то время как я Я пытаюсь сделать это больше похоже на это

<section>
<footer>
<div><span>0</span></div>
</footer>
</section>

<section>
<ul>
<li></li>
</ul>
</section>

мой jQuery в настоящее время похож на это

var $name1 = $('.classname1 span'),
$name2 = $('.classname2 ul');

var name3 = $name2.find('li').lenght;
$name1.text(name3);

справедливое предупреждение, я новичок ie. Я изучал кодирование только 1,5 года.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2020

don't want to work Это один из способов выразить это :)).

element.find('li') найдет все li, которые являются потомками этого элемента. Это включает в себя детей, внуков и так далее. Он похож на метод children(), но этот поиск выполняется только на «первом» уровне потомков.

Во-вторых, имя length не такое длинное, как вы его пишете.

См. Ниже

// will return all 8 li
let liCount = $('ul.top-level').find('li').length 
console.log(liCount)


// will return just the top 5 ( direct children )
liCount = $('ul.top-level').children('li').length
console.log(liCount)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class='top-level'>
  <li></li>
  <li></li>
  <li></li>
  <li>
    <ul>
       <li></li>
        <li></li>
        <li></li>
    </ul>
   </li>
  <li></li>
  </ul>
0 голосов
/ 10 февраля 2020

Что вам нужно сделать, это получить элемент, содержащий все li с, которые вы хотите сосчитать, а затем выполните $el.find("li").length.

Способ получения этого элемента будет зависеть от вашей ситуации. Вы можете получить его, нацелив его напрямую (например, $(#id_of_the_element) или $(.class_of_the_element)), или, если он относится к другому элементу, вы можете использовать такие методы, как closest.

Для меня, чтобы помочь вам больше точно, вам нужно будет опубликовать HTML, который на самом деле соответствует вашему JS коду, так как вы HTML не содержат классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...