使用Javascript遍历无序列表
我有一个无序的嵌套列表 我想以这样一种方式计算这些嵌套列表,即在使用Javascript遍历无序列表,javascript,html,dom,nested-lists,Javascript,Html,Dom,Nested Lists,我有一个无序的嵌套列表 我想以这样一种方式计算这些嵌套列表,即在动物中有19只动物。我想用Javascript计算所有拥有动物名称的li。我应该如何进行 动物 哺乳动物 猿类 黑猩猩 大猩猩 猩猩 土狼 狗 大象 马 鲸鱼 其他 鸟 信天翁 欧洲货币联盟 鸵鸟 蜥蜴 蛇 鱼 金鱼 三文鱼 鳟鱼 @mplungjan在评论中提出了这一解决方案,它很有效文档.queryselectoral(“ul”)[1]。queryselectoral(“li”)。
动物中有19只动物。我想用Javascript计算所有拥有动物名称的li。我应该如何进行
-
动物
-
哺乳动物
- 猿类
- 黑猩猩
- 大猩猩
- 猩猩
- 土狼
- 狗
- 大象
- 马
- 鲸鱼
-
其他
-
鸟
- 信天翁
- 欧洲货币联盟
- 鸵鸟
- 蜥蜴
- 蛇
- 鱼
- 金鱼
- 三文鱼
- 鳟鱼
@mplungjan在评论中提出了这一解决方案,它很有效<代码>文档.queryselectoral(“ul”)[1]。queryselectoral(“li”)。长度
这给出了17个正确的计数(在注释中澄清后,超过了给出的第一个计数19)
这个问题是关于遍历的,我们在这里一步一步地展示它,以帮助提供更一般的解决方案
我们首先必须找到包含所有其他列表的元素。我假设ul元素是文档中的第一个元素。在一般情况下,我们可能会通过知道元素的id或其类来找到这样的元素
然后我们找到与动物相关联的li元素,我们再次假设它是第一个元素,就像在给定的HTML中一样。但是,如果它要更复杂,您可能需要查找包含动物作为其内部HTML的li元素
然后,我们找到关联的lis并对其进行计数
这是代码,您可以运行代码片段,看到它达到17(在注释中已澄清,问题中的原始计数为19,还澄清了这与计算实际动物名称无关,只与计算li元素有关)
-
动物
-
哺乳动物
- 猿类
- 黑猩猩
- 大猩猩
- 猩猩
- 土狼
- 狗
- 大象
- 马
- 鲸鱼
-
其他
-
鸟
- 信天翁
- 欧洲货币联盟
- 鸵鸟
- 蜥蜴
- 蛇
- 鱼
- 金鱼
- 三文鱼
- 鳟鱼
var firstUL=document.getElementsByTagName('UL')[0]//假设整个列表是文件中的第一个UL
var animalsLI=firstUL.getElementsByTagName('LI')[0];
var animalsLIUL=animalsLI.getElementsByTagName('UL')[0];
var animalsLIs=animalsLI.getElementsByTagName('LI');
警报('LIs计数为'+动物LIs.长度);
请访问,并查看和。做一些研究,搜索相关话题等;如果遇到问题,请发布您的尝试,使用[]
代码段编辑器记录输入和预期输出。类似于document.queryselectoral(“ul-li:第一个li类型”)。length
,给出17。document.queryselectoral(“ul”)[1]。queryselectoral(“li”)。length
还给出17什么算是“动物”?我数了16只(即李没有ul孩子)。这里可能列出了14只或更少的动物。在动物的含义和动物的种类或群体之间可能存在一些混淆。例如,狗是动物吗,或者它是潜在不同类型狗的标题。你能进一步澄清一下吗?document.queryselectoral(“ul”)[1]。queryselectoral(“li”).length代码>这对我很有效。但这里有一个问题var textUl=document.querySelector(“ul”).getElementsByTagName(“li”)代码>textUl[0]。textContent='Animals('+firstUl+')代码>这个东西缩小所有动画并显示文本。@mplungjan说document.querySelectorAll(“ul”)[1]。querySelectorAll(“li”)。长度为17,答案绝对正确,但我的答案想一步一步地显示遍历,因为遍历在标题中给出,并帮助任何寻求更一般解决方案的人。对不起,我不明白你在分配“动物”(“+firstUl+”)时想做什么;到textUl[0]。textContent。您是否试图覆盖innerHTML(实际上从DOM中删除一些内容)?它有一个错误-什么是firstUl?它还没有在任何地方定义(尽管您可能已经重命名了我的变量?)请尝试使用浏览器的开发工具运行代码,并查看控制台,这将有助于删除语法等错误。也许你现在所问的不是原来的问题?对不起,我很困惑,所以目前没有帮助。