在提取dom对象后,无法将每个名为tab的元素推送到数组中

unable to push each element that is named tab into an array after pulling the dom object

本文关键字:元素 tab 数组 对象 dom 提取      更新时间:2024-07-03

在开发人员工具中,它表明我能够提取所需的所有元素,但问题是我无法将它们推送到数组,数组保持为空。不幸的是,我不被允许使用jquery。我做了很多研究,却找不到我需要的东西。

 /*
 Author:Anthony Weed
 Date:2/20/2015
Filename:  menus.js
*/
window.addEventListener('load',setTabs);
var currentTab = null;
var maxZ = 1;
var i=0;
function setTabs(){
var menuTabs = [];
var allElements = document.getElementById('page').getElementsByTagName('*');
    for(var i=0;  i < allElements.length; i++){
     if (allElements.children == 'LI.tab'){
        menuTabs.push(allElements[i]);
        }
     else {
     continue;
     }
     i++
     }
console.log(allElements);
console.log(menuTabs);
}

试试这个:

for(var i=0;  i < allElements.length; i++){
 if (allElements.children == 'LI.tab'){
       var newAryElement = allElements[1];
       menuTabs.push(newAryElement);
    }
 i++
 }

这可能无法解决您的问题,但我怀疑它会显示newAryElement本身是一个数组,然后您需要解析它。

您的问题是这一行:

if (allElements.children == 'LI.tab'){

allElements.children引用了一些不存在的东西。allElements是一个HTMLCollection,它有点像一个数组,但它是一个对象。

我有点不清楚你想做什么,所以我真的不能提供一种方法来实现这一点,但这肯定是问题所在。根据你想做的事情,你可能想引用这样的东西:

if (allElements.item(i).tagName == somethingHere ) {

这是getElementsByTagName()的参考资料。