代码之家  ›  专栏  ›  技术社区  ›  DCR

在javascript中查找元素的索引

  •  0
  • DCR  · 技术社区  · 6 年前

    我按类名获取所有元素,并为每个元素创建一个侦听器,如下所示:

    const subnavs = document.getElementsByClassName('subnav') 
    for ( let i =0 ; i <subnavs.length ; i++ ) {
       subnavs[i].addEventListener('mouseover', function() {
       purpleDiv.style.marginTop =  rect.height + 'px'
    }) 
    

    当触发鼠标事件时,如何获取单击了哪个“subnav”的索引?这是在Wordpress中,所以我没有一个简单的方法来为每个subnav添加一个id,这样就能做到这一点。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Tucker Sneed    6 年前

    如果你想要索引就用 i 在您的回拨中:

       subnavs[i].addEventListener('mouseover', function() {
           purpleDiv.style.marginTop =  rect.height + 'px'
           console.log("INDEX: ", i)
       }) 
    

    MouseEvent

    所以如果你改变 function() { function(event) { 你可以用鼠标移动特定的元素 event.target

       subnavs[i].addEventListener('mouseover', function(event) {
           purpleDiv.style.marginTop =  rect.height + 'px'
           console.log("ELEMENT: ", event.target)
       }) 
    
        2
  •  0
  •   KGreene    6 年前

    可以使用对象:

    const subnavs = document.getElementsByClassName('subnav') 
    for ( let i =0 ; i <subnavs.length ; i++ ) {
       subnavs[i].addEventListener('mouseover', function(e) {
       /*** Now you can use 'e' to reference the nav triggering the listener **/
       e.style.marginTop =  rect.height + 'px'
       ***/
       purpleDiv.style.marginTop =  rect.height + 'px'
    })