style.display имеет значение null - пытается перебрать массив и изменить свойство отображения - PullRequest
0 голосов
/ 20 июня 2011

Еще один вопрос новичка от меня.

Просто проверяю, возможен ли мой код ниже.Т.е. создание нового массива, состоящего из 'document.GetElementById's'.Так как я довольно новичок в 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 / section ('personal' и т. Д.) Оставался скрытымно если он содержит текст, то я хочу показать раздел.

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Вы добавляете строки в свой массив вместо ссылок на элементы 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"
         }
      }
   }
}
0 голосов
/ 20 июня 2011

Вы должны использовать как это, без двойных 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);
...