document.getElementsByClassName返回undefined

时间:2014-01-26 11:24:32

标签: javascript jquery arrays nodes nodelist

我在尝试获取div的类名或ID时得到TypeError: 'undefined' is not a function (evaluating 'document.getElementByClassName("selceted")')。我无法弄清楚为什么。数组/节点列表不为空,它包含来自每个timeline-item帖子的所有数据,只有1个具有selected类,所以我如何才获得该元素?

到目前为止,这是我的代码:

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");
        }
    }

3 个答案:

答案 0 :(得分:1)

您需要将getElementByClassName更改为getElementsByClassName,同时您使用的班级名称也不正确。

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

答案 1 :(得分:0)

尝试将selceted更改为selected

getElementByClassNamegetElementsByClassName,最终select变量应为:

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

答案 2 :(得分:0)

这里只是一些拼写错误

document.getElementByClassName("selceted");

更改为

document.getElementsByClassName("selected");

语法

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

示例

获取类'test'

的所有元素
document.getElementsByClassName('test');