2017-01-17 3 views
0

Я заменил содержимое моего html-файла на шаблон руля. Теперь у меня есть этот JS-кодДлина HTMLcollection равна нулю. Невозможно преобразовать его в массив. Handlebars.js

function init() { 
    var elements = document.getElementsByTagName('li'); 
    console.log("before click"); 
    console.log(elements); 
    pullData(); 
    var arr = [].slice.call(elements); 
    console.log(arr); 

    for (var i = 0; i < arr.length; i++) { 
     console.log("before click"); 
     arr[i].addEventListener("click", function() { 
      console.log("after click"); 
      for (var j = 0; j < arr.length; j++) { 
       arr[j].classList.remove('selected', 'no-hover'); 
      } 
      var contentList = document.querySelectorAll('.show'); 
      console.log(contentList); 
      for (var k = 0; k < contentList.length; k++) { 
       contentList[k].classList.remove('show'); 
      } 
      document.getElementById('right').style.display = 'block'; 
      var id = this.id; 
      console.log(id); 
      var targetElements = document.querySelectorAll('.' + id); 
      console.log(targetElements); 
      for (var x = 0; x < targetElements.length; x++) { 
       targetElements[x].classList.add('show'); 
      } 
      this.classList.add('selected', 'no-hover'); 
     }); 
    } 
} 

который работал отлично перед использованием шаблона handelbars, как он возвращался нодлист, я был в состоянии перебрать элементы и добавлять щелчок к каждому элементу.

После использования рулей мой elements - это HTMLcollection, который я попытался преобразовать в массив, но я получаю пустой массив.

У меня есть следующие вопросы. Является ли handlebars причиной этого изменения? (Возврат HTMLcollection вместо списка узлов) Или я просто подключаю две отдельные вещи?

Почему я получаю пустой массив?

+0

полный html или только шаблон ручек? –

ответ

0

Итак, я решил это с небольшой помощью.

Причина, по которой я получал пустой массив, заключалась в том, что мой JS-код пытался конвертировать HTML-подборку, прежде чем рули были сделаны, создавая шаблон.

Я проверил это, указав длину HTML-коллекции, которая выходила как ноль.

Все, что я должен был сделать, чтобы исправить это, чтобы убедиться, что я конвертирую коллекцию в массив после того, как шаблон handlebars был выполнен с его процессом.

Смежные вопросы