Javascript按类或id获取DOM数组中的元素索引位置

标签 javascript dom selector element

我的情况

var domElements = document.body.getElementsByTagName('*');

现在我想返回数组项键 - 元素在数组中的位置 - (例如 domElements[34])在数组中搜索 id="的元素asd”.

我怎样才能做到这一点?

如果我想通过 class="asd hey" 搜索而不是 ID 怎么办?

感谢任何帮助,谢谢!

注意:不在 jquery 中,在这种情况下我需要在纯 javascript 中

最佳答案

这样试试

var matches = document.querySelectorAll("#asd");

如果要按类搜索

var matches = document.querySelectorAll(".asd");

如果你想要你的代码的索引

这样试试

var domElements = document.body.getElementsByTagName('*');

for(var i=0;i<domElements.length;i++){
   if(domElements[i].id==="asd"){
      // search by id 
      // index i 
   }
   if(domElements[i].className==="asd"){
      // search by class 
      // index i 
   }
}

编辑

还有另一种方法可以找到索引

这样试试

var domElements = document.body.getElementsByTagName('*');
var domList= Array.prototype.slice.call(document.body.getElementsByTagName('*'));
var itemList = Array.prototype.slice.call(document.querySelectorAll(".asd"));
console.log(domList.indexOf(itemList[0])) // if you wanna find one index

//if you wanna search all index of class 

for(var i=0;i<itemList.length;i++)
  console.log(domList.indexOf(itemList[i]))

关于Javascript按类或id获取DOM数组中的元素索引位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31134087/

相关文章:

javascript - 如何发送带有正文的 Select2 AJAX POST?

javascript - 仅在 console.log 中输出时才找到元素

swift - 在 Swift 中设置计时器

javascript - 实现 twitter bootstrap 会影响现有的 css 或表单吗?

javascript - 如何将此 jQuery 添加到我的 Javascript 中?

javascript - 尝试使用源元素加载 HTML5 视频时检测错误类型

javascript - Ajax 调用后更新 DOM 的最佳实践

javascript - 创建元素有哪些不同的方式

ios - 在 Swift 中使用选择器的正确方法

javascript - jQuery 选择器隐藏功能