Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 拉动dom对象后,无法将每个名为tab的元素推入数组_Javascript - Fatal编程技术网

Javascript 拉动dom对象后,无法将每个名为tab的元素推入数组

Javascript 拉动dom对象后,无法将每个名为tab的元素推入数组,javascript,Javascript,在开发人员工具中,它显示我能够提取我需要的所有元素,但问题是我无法将它们推送到数组中,它保持为空。不幸的是,我不允许使用jquery。我做了这么多的研究,只是找不到我到底需要什么 /* Author:Anthony Weed Date:2/20/2015 Filename: menus.js */ window.addEventListener('load',setTabs); var currentTab = null; var maxZ = 1; var i=0; func

在开发人员工具中,它显示我能够提取我需要的所有元素,但问题是我无法将它们推送到数组中,它保持为空。不幸的是,我不允许使用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);
}
/*
作者:安东尼·威德
日期:2015年2月20日
文件名:menus.js
*/
window.addEventListener('load',setTabs);
var currentTab=null;
var-maxZ=1;
var i=0;
函数setTabs(){
变量menuTabs=[];
var-allegements=document.getElementById('page').getElementsByTagName('*');
对于(var i=0;i
您的问题是这一行:

if (allElements.children == 'LI.tab'){
等位基因。儿童
引用的是不存在的东西
Allegements
是一个数组,有点像数组,但它是一个对象

我有点不清楚你想做什么,所以我真的不能提供一种方法来实现这一点,但这肯定是问题所在。根据您尝试执行的操作,您可能希望引用以下内容:

if (allElements.item(i).tagName == somethingHere ) {
这是的参考资料。

试试这个:

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

       menuTabs.push(newAryElement);
    }
 i++
 }
for(变量i=0;i

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

这是之前的一次尝试,目的是看看它是否可行……基本上,我们使用javascript创建了一个选项卡式导航栏。每个名为li的选项卡元素都是下拉标题。是的,但控制台返回newary元素未定义抱歉,Anthony,我问@MichaelMcPherson是否尝试过。这表明,正如Jonathan M下面所说,您的选择器存在问题。一定要到下面去阅读他对getElementsByTagName()的引用;这会有帮助的。我能够找到答案……亚尔说的所有话都让我找到了正确的答案。所以在我的if语句中,我将元素[i].className=='tab'放入数组中,这样我就可以将每个tab放入数组中。您应该输入它,然后回答您自己的问题!