为什么我可以'不要使用xx[this.index].style.display?它's说“;无法读取属性
why i can't use xx[this.index].style.display? it's said "Cannot read property 'style' of undefinedbtn"
我想让xx[this.index]在一个循环中,每个循环都有一个索引,然后当我点击其中的一个按钮时,按钮的背景会变成黄色&div块将同时更改单词。为什么它不起作用?我看到其他人使用这种方式效果很好。我该怎么办?非常感谢!
这是我的JSFiddle:http://jsfiddle.net/QCxwr/7
window.onload=function()
{
var btn = document.getElementsByTagName('input');
var div = document.getElementsByName('div');
for(var i=0;i<btn.length;i++) {
btn[i].index = i;
btn[i].onclick=function() {
for(var i=0;i<btn.length;i++) {
btn[i].className = '';
div[i].style.display='none';
}
this.className = 'active';
div[this.index].style.display = 'block';
};
}
};
请查找更新的javascript代码。当您使用"getElementsByName"进行提取时,DIV数组为0。
window.onload=function()
{
var btn = document.getElementsByTagName('input');
var div = document.getElementsByTagName('div');
for(var i=0;i<btn.length;i++) {
btn[i].index = i;alert
btn[i].onclick=function() {
for(var i=0;i<btn.length;i++) {
btn[i].className = '';
div[i].style.display='none';
}
this.className = 'active';
div[this.index].style.display = 'block';
};
}
};
this
将引用此处的窗口。除非你在对象窗口上放一个属性索引(真的不建议),否则这是行不通的。
因此,如果这个函数是在一个对象上的方法中执行的,你就必须执行经典的技巧:
var me = this;
window.onload=function(){
...
div[me.index].style.display = 'block';
}
div数组为空。你打算用吗
getElementsByTagName
而不是
getElementsByName
返回DIV时?
此外,您应该在尝试访问之前检查数组长度。
更新的代码http://jsfiddle.net/QCxwr/9/
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 将display属性更改为visible flicks,然后再次消失
- 为什么我可以'不要使用xx[this.index].style.display?它's说“;无法读取属性
- Pre 标记似乎忽略了样式属性(例如 display:none)
- 如何检查标头元素的display属性的值
- 为什么当同级节点的“display”属性发生更改时,React 组件的 onClick 事件处理程序不会触发
- IE9 JS 无法获取属性“display”的值:对象为空或未定义
- 如何使用属性 display:none 测量类的长度
- JS监视CSS属性的变化,如“display:none”=>“display:block”
- CSS3属性display:box/display:flexbox是否有交叉浏览器(IE7-8)支持的js文件
- 获取隐藏(display:none)html元素的属性
- 正在获取继承的style.display属性
- JavaScript中使用display属性的带有缩略图的图像数组
- Jquery toggle设置属性为display: table而不是block
- Jquery FadeIn添加显示属性,而不是仅仅删除display:none
- 在slideToggle移除display:hidden属性后,将焦点设置为元素
- 是否使用display属性或left/top隐藏元素
- 第N个子css属性正在计算display属性设置为none的html元素.如何更改
- 使用 display 属性操作元素