我的情况
var domElements = document.body.getElementsByTagName('*');
现在我想返回数组项键-元素在数组中的位置(例如
domElements [34]
),在数组中搜索具有id =" asd "
的元素。我如何实现这一点?
如果不是ID,而是要搜索
class ="asd hey"
怎么办?非常感谢您的任何帮助!
注:不使用jquery,在这种情况下我需要使用纯javascript。
我的情况
var domElements = document.body.getElementsByTagName('*');
domElements [34]
),在数组中搜索具有id =" asd "
的元素。class ="asd hey"
怎么办?试试这样做
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]))
for (var i = 0; i < parentElement.children.length; i++) {
var item = parentElement.children[i];
if (item.getAttribute('id') === 'asd') {
return i;
}
}
parentElement
- 这种方法更加合理,而且效率也更高。我想您是在问这个:
var li = document.querySelectorAll("li");
function cutlistitem(lielm) {
lielm.addEventListener("click", function () {
lielm.classList.toggle("done")
})
};
li.forEach(cutlistitem);
最简单的方法
var list = [].slice.call(document.querySelectorAll('.class-name'));
var listIndex = list.filter(function(el, index){
if(el.id === 'id'){
return index;
}
})