Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/424.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.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 查看特定元素对应的第n个子元素?_Javascript_Html_Jquery_Dom - Fatal编程技术网

Javascript 查看特定元素对应的第n个子元素?

Javascript 查看特定元素对应的第n个子元素?,javascript,html,jquery,dom,Javascript,Html,Jquery,Dom,使用上的示例,假设我有以下HTML: <ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> </ul> 清单项目1 清单项目2 清单项目3 清单项目4 清单项目5

使用上的示例,假设我有以下HTML:

<ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li>
</ul>
  • 清单项目1
  • 清单项目2
  • 清单项目3
  • 清单项目4
  • 清单项目5
如果要选择第二个
  • ,可以执行
    $(“li”).eq(2)


    但是如果我有一个随机的
  • ,想看看它是不是第一个呢?假设我做了
    var el=$(“li”).eq(Math.floor(Math.random()*5)+1)
    ,然后想看看
    el
    是否是第一个
  • 。我该怎么做?

    您可以检查元素
    是否匹配您感兴趣的第n个子选择器。例如:

    const li=$('li').eq(2)[0];/。eq是0索引的
    console.log(
    li.matches(“:n个子项(2)”,//false-这是第3个(1索引),而不是第2个
    li.matches(':第n个子项(3)//true
    );
    
    
    
    • 清单项目1
    • 清单项目2
    • 清单项目3
    • 清单项目4
    • 清单项目5

    一种方法是使用
    index()
    在其同级中获取元素索引

    您还可以使用
    is()
    并传入表示特定元素的选择器或jQuery对象

    const$li=$('li')
    $li.eq(Math.floor(Math.random()*5)).css('color','red')。单击(function()){
    常量索引=$(this.index();
    log('My index is',index',is first=',index==0);
    log('I am first',$(this).is($li.first()))
    })
    
    
    • 清单项目1
    • 清单项目2
    • 清单项目3
    • 清单项目4
    • 清单项目5

    $(“li”).eq(2)
    是第三个非秒索引,因为索引是基于零的
    […el.parentElement.children]。indexOf(el)
    本机DOM API:
    el.previousElementSibling==null
    或:
    el.matches(:first child”)