2014-01-26 2 views
2

Я получаю TypeError: 'undefined' is not a function (evaluating 'document.getElementByClassName("selceted")') при попытке получить имя класса или идентификатор div. и я не могу понять, почему. Массив/ноделист НЕ пуст, он имеет ВСЕ данные из каждого сообщения timeline-item, и только 1 имеет класс selected, так как я могу получить только этот элемент?document.getElementByClassName возвращает undefined

Вот мой код до сих пор:

if($.inArray(postdate, post_image_dates)){ 
    var posts = $(".timeline-item"); 
    posts.removeClass("selected"); 
    var matchedPost = posts.filter("[data-date='" + postdate + "']"); 

    if(matchedPost.length > 0){ 
     matchedPost.addClass("selected"); 

     var more_post_content = document.createElement('div'); 
     more_post_content.id = 'more_post_content'; 

     var ul = document.createElement('ul'); 
     var li = document.createElement('li'); 
     li.innerHTML = '<a href="#"><img src="' + postdata + '"/></a>'; 

     ul.appendChild(li); 
     more_post_content.appendChild(ul); 
     var elementArray; 

     elementArray = [].slice.call(matchedPost, 0); 
     console.log(elementArray); 
     if($.inArray('selected', elementArray)){ 
      var select = document.getElementByClassName("selceted"); 
     } 
    } 
+1

Там нет функции 'getElementByClassName'. Это getElement ** s **. И, как говорится в названии, он не возвращает ни одного элемента. – Jon

+0

Обратите внимание, что 'if ($. InArray ('selected', elementArray))' должно быть 'if ($. InArray ('selected', elementArray)> -1)'. Ваше состояние терпит неудачу, если элемент elementArray является первым. – undefined

ответ

1

Вы должны изменить getElementByClassName - getElementsByClassName также имя класса, которое вы используете это неверно.

if($.inArray('selected', elementArray)){ 
    var select = document.getElementsByClassName("selected"); 
    //..............................^................^......... 
} 
+1

Большое вам спасибо! это сработало !!! – user3185528

0

Попробуйте изменить selceted к selected

и getElementByClassName к getElementsByClassName, окончательное select переменная должна быть:

if($.inArray('selected', elementArray)){ 
    var select = document.getElementsByClassName("selected"); 
} 
0

Просто некоторые орфографические ошибки здесь

document.getElementByClassName("selceted"); 

изменение

document.getElementsByClassName("selected"); 

Синтаксис

elements = document.getElementsByClassName(names); // or: 
elements = rootElement.getElementsByClassName(names); 

E Xample

Получить все элементы, которые имеют класс 'test'

document.getElementsByClassName('test'); 
Смежные вопросы