Javascript getElementsByClassName(';el';)[0]未定义

Javascript getElementsByClassName(';el';)[0]未定义,javascript,Javascript,未捕获类型错误:无法调用未定义的方法“appendChild” 我在chrome 31版上。我尝试使用纯javascript而不是jquery,因为我需要速度,并且必须使用类not id。为什么会发生这种情况?使用document.getElementsByClassName('b'+1)而不是document.getElementsByClassName('.b'+1) 使用getElementsByClassName不需要使用document.getElementsByClassName('

未捕获类型错误:无法调用未定义的方法“appendChild”


我在chrome 31版上。我尝试使用纯javascript而不是jquery,因为我需要速度,并且必须使用类not id。为什么会发生这种情况?

使用
document.getElementsByClassName('b'+1)
而不是
document.getElementsByClassName('.b'+1)


使用
getElementsByClassName
不需要
使用
document.getElementsByClassName('b'+1)
而不是
document.getElementsByClassName('.b'+1)


您不需要将
getElementsByClassName一起使用

在JavaScript中,不应该在类名前面加点。简单地
var\u bM=document.getElementsByClassName('b'+1)[0]就可以了。

在JavaScript中不应该在类名前面加点。简单地
var\u bM=document.getElementsByClassName('b'+1)[0]就可以了。

除了其他答案之外。如果您需要跨浏览器解决方案,并且速度很重要,请尝试使用此脚本。适用于所有现代和传统浏览器。使用超快速查询选择器all。如果不可用,则降级为本机GetElementsByCassName。如果也不可用,仍然可以使用(速度较慢,但即使在非常旧的IEs中也可以使用)。这里有一个代码:

var _bM=document.getElementsByClassName('.b'+1)[0];

除了其他答案之外。如果您需要跨浏览器解决方案,并且速度很重要,请尝试使用此脚本。适用于所有现代和传统浏览器。使用超快速查询选择器all。如果不可用,则降级为本机GetElementsByCassName。如果也不可用,仍然可以使用(速度较慢,但即使在非常旧的IEs中也可以使用)。这里有一个代码:

var _bM=document.getElementsByClassName('.b'+1)[0];

类名不包括
。类名不包括
var _bM=document.getElementsByClassName('.b'+1)[0];
function gEByClass(cName, el) {
getElementsByClass = function(getClass){
el = el||document;
if(el.querySelectorAll) {
return el.querySelectorAll("." + getClass);
}
else if(el.getElementsByClassName) {
return el.getElementsByClassName(getClass);
}
else {
var list = el.getElementsByTagName('*'), i = list.length,
classArray = getClass.split(/\s+/), result = [];
while(i--) {
if(list[i].className.search('\\b' + classArray + '\\b') != -1) {
result.push(list[i]);
}
}
return result;
}
};
return getElementsByClass(cName);
}