我正在尝试制作一个计数器来计算li的数量,但是我想计算的是另一个元素(部分(,以及我使用.find('li'(.length的jQuery设置;不想工作(我从老师为我做的另一个计数器上拿走了它,这有效(。我想计算的元素必须是兄弟姐妹或孩子才能工作吗?
就像,有效的那个基本上是这样在 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);
公平警告,我是新手。我只学习了 1,5 年的编码。
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>
您需要做的是获取包含要计数的所有li
的元素,然后执行$el.find("li").length
。
您如何获得此元素将根据您的情况而有所不同。您可以通过直接定位它(例如$(#id_of_the_element)
或$(.class_of_the_element)
(来获取它,或者,如果它相对于另一个元素,您可以使用closest
等方法。
为了更准确地帮助您,您必须发布与您的JS代码实际匹配的HTML,因为HTML不包含任何类。