通过half classname获取元素(没有jQuery)

时间:2014-10-22 22:24:06

标签: javascript html

我想通过函数调用它们来获取3个链接的列表 一切顺利,直到(javascript)代码的最后一部分。当它执行该代码时,它表示“未定义”' 3次..

为什么不只显示3个名字?

HTML

<h3>
<a id="126" class="6.3 linksh3 filmnaam" href="#">Name1</a></h3>
<h3>
<a id="100" class="7.4 linksh3 filmnaam" href="#">Name2</a></h3>
<h3>
<a id="101" class="6.4 linksh3 filmnaam" href="#">Name3</a></h3>

的Javascript

    for (v = 0; v < classname.length; v++) { //classname = ["6.3", "6.4", "7.4"]
        titels.push(document.getElementsByClassName(classname[v]).innerHTML);
        console.log(titels[v]);
    }

(没有jQuery)

提前谢谢

3 个答案:

答案 0 :(得分:0)

这将返回匹配元素的HTMLCollection。

document.getElementsByClassName(classname[v])

试试这个:

for (v = 0; v < classname.length; v++) { //classname = ["6.3", "6.4", "7.4"]
    titels.push(document.getElementsByClassName(classname[v])[0].innerHTML);
    console.log(titels[v]);
}

答案 1 :(得分:0)

.getElementsByClassName()返回一个元素数组,而不是单个元素,因此您尝试在数组对象上调用.innerHTML,而不是HTMLElement。

titels.push(document.getElementsByClassName(classname[v])[0].innerHTML);

将访问该数组的第一个元素的.innerHTML

http://jsfiddle.net/6ndpx6g7/

答案 2 :(得分:-1)

getElementsByClassName()返回一个数组,你需要在getElementsByClassName()之后添加[0]这样

getElementByClassName()[0] .innerHTML