Javascript style.display为空-尝试在数组上循环并更改显示属性
我又问了一个新手问题 只是检查我下面的代码是否可行。即创建一个由“document.GetElementById”组成的新数组。由于我对javascript相当陌生,我的代码通常有点冗长,所以请原谅我的混乱 下面的代码出现错误“style.display”为“null”或不是对象。 有人能看到我明显的缺失或做错了什么吗Javascript style.display为空-尝试在数组上循环并更改显示属性,javascript,css,for-loop,show-hide,Javascript,Css,For Loop,Show Hide,我又问了一个新手问题 只是检查我下面的代码是否可行。即创建一个由“document.GetElementById”组成的新数组。由于我对javascript相当陌生,我的代码通常有点冗长,所以请原谅我的混乱 下面的代码出现错误“style.display”为“null”或不是对象。 有人能看到我明显的缺失或做错了什么吗 function Test(){ if(document.getElementById('inClient').value !=="FormViewer"){ var
function Test(){
if(document.getElementById('inClient').value !=="FormViewer"){
var visible =new Array("document.getElementById('personal2').value","document.getElementById('change_hours2').value");
var change = new Array("document.getElementById('personal').value","document.getElementById('change_hours').value");
for (var i=0; i <visible.length; i++) {
if(visible[i]!==""){
change[i].style.display = "block"
}
}
}
}
功能测试(){
if(document.getElementById('inClient').value!=“FormViewer”){
var visible=新数组(“document.getElementById('personal2').value”,“document.getElementById('change_hours2').value”);
var change=new数组(“document.getElementById('personal').value”,“document.getElementById('change_小时').value”);
对于(var i=0;i您正在向数组中添加字符串,而不是对DOM元素的引用。删除引号和value
属性,它就会工作。您必须在迭代中检查值
function Test(){
if(document.getElementById('inClient').value !=="FormViewer"){
var visible =new Array(document.getElementById('personal2'), document.getElementById('change_hours2'));
var change = new Array(document.getElementById('personal'), document.getElementById('change_hours'));
for (var i=0; i <visible.length; i++) {
if(visible[i].value != ""){
change[i].style.display = "block"
}
}
}
}
功能测试(){
if(document.getElementById('inClient').value!=“FormViewer”){
var visible=新数组(document.getElementById('personal2')、document.getElementById('change_hours2');
var change=新数组(document.getElementById('personal')、document.getElementById('change_hours');
对于(var i=0;i您应该这样使用,没有双qoutes,它应该可以工作
var visible =new Array(document.getElementById('personal2').value,document.getElementById('change_hours2').value);
var change = new Array(document.getElementById('personal').value,document.getElementById('change_hours').value);
执行警报(更改)
然后看看数组包含什么。它不包含DOM元素。对于可见的,它也不包含DOM元素的值。非常感谢,这是我通常忽略的一件小事。如果允许,我会接受你的回答。@MarkWalters:还有一件事,不要使用新数组
,使用数组文字var可见=[…,…]
@Felix Kling:不确定我为什么要使用新数组。但是你能解释一下为什么我应该使用数组文本吗?@Mark:数组的构造函数是不明确的。如果你只传递一个值,它会尝试将数组的长度设置为该值。如果你传递两个或更多的值,它会将这些值添加到数组中。这很容易被忽略错误的广告。数组文字也写得更短。感谢Felix的解释