Javascript 查看特定元素对应的第n个子元素?
使用上的示例,假设我有以下HTML: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
<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”)