Javascript 拉动dom对象后,无法将每个名为tab的元素推入数组
在开发人员工具中,它显示我能够提取我需要的所有元素,但问题是我无法将它们推送到数组中,它保持为空。不幸的是,我不允许使用jquery。我做了这么多的研究,只是找不到我到底需要什么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
/*
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放入数组中。您应该输入它,然后回答您自己的问题!