我的另一个新手问题。
只是检查我下面的代码是否可行。即创建一个由“document.GetElementById”组成的新数组。由于我是 javascript 的新手,我的代码通常有点冗长,所以请原谅我的困惑。
下面的代码显示错误“style.display”为“null”或不是对象。任何人都可以看到任何明显的我遗漏或做错的事情吗?
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"
}
}
}
}
基本上,如果隐藏字段('personal2' 等)为空,我希望 div/部分('personal' 等)保持隐藏状态,但如果它包含文本,那么我想显示该部分。
提前致谢
您正在向数组中添加字符串而不是对 DOM 元素的引用。删除引号和 value
属性,它将起作用。您必须在迭代中检查 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"
}
}
}
}
我是一名优秀的程序员,十分优秀!