jQuery .find('li').length 必须来自兄弟姐妹/孩子?



我正在尝试制作一个计数器来计算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不包含任何类。

最新更新