Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript遍历无序列表_Javascript_Html_Dom_Nested Lists - Fatal编程技术网

使用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?它还没有在任何地方定义(尽管您可能已经重命名了我的变量?)请尝试使用浏览器的开发工具运行代码,并查看控制台,这将有助于删除语法等错误。也许你现在所问的不是原来的问题?对不起,我很困惑,所以目前没有帮助。