簡體   English   中英

如何在 javascript 中找到 li 索引

[英]How to find li index in javascript

如何使用 javascript 查找 li 索引。我已經MARK UP了這個

<ul class="rh02nav">
               <li><a class="" href="#1" title="View Slide 1"><b>View Slide 1</b></a></li>
               <li><a class="o-hf rh02cnav" href="#2" title="View Slide 2 rh02cnav"><b>View Slide 2</b></a></li>
               <li><a class="o-hf " href="#3" title="View Slide 3"><b>View Slide 3</b></a></li>
               <li><a class="o-hf " href="#4" title="View Slide 4"><b>View Slide 4</b></a></li>
               <li><a class="o-hf " href="#5" title="View Slide 5"><b>View Slide 5</b></a></li>
            </ul>

我能找到父母李li 但我想要它的索引。

// working fine
console.log('Element',document.querySelector('.rh02nav .rh02cnav').parentElement)

// not working expected 1 .output -1
console.log(Array.prototype.indexOf.call(document.querySelector('.rh02nav li'), document.querySelector('.rh02nav .rh02cnav').parentElement))

這是我的完整代碼:
https://jsbin.com/luzuvisuvu/3/edit?html,js,控制台,output

let parent = document.querySelector('.rh02nav .rh02cnav').parentElement;
let childern = [...parent.children];
let index;
for(let i in children) 
if(children[i].classList.contains("rh02cnav") {
    index = i;
    break;
}

console.log(index);

如果 className 是唯一的,它會起作用

遍歷子 li 元素並查看其中的錨標記是否包含正確的 className:

 let children = document.querySelector('ul.rh02nav').children let idx for (let i = 0; i < children.length; i++) { if (children[i].querySelector('a').className.includes('rh02cnav')) { idx = i } } console.log('idx is ' + idx)
 <ul class="rh02nav"> <li><a class="" href="#1" title="View Slide 1"><b>View Slide 1</b></a></li> <li><a class="o-hf rh02cnav" href="#2" title="View Slide 2 rh02cnav"><b>View Slide 2</b></a></li> <li><a class="o-hf " href="#3" title="View Slide 3"><b>View Slide 3</b></a></li> <li><a class="o-hf " href="#4" title="View Slide 4"><b>View Slide 4</b></a></li> <li><a class="o-hf " href="#5" title="View Slide 5"><b>View Slide 5</b></a></li> </ul>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM