“document.getElementByClass不是一个函数”

我试图运行class="stopMusic"任何button的onClick函数。 我在Firebug中出错

document.getElementByClass不是一个函数

这是我的代码:

 var stopMusicExt = document.getElementByClass("stopButton"); stopButton.onclick = function() { var ta = document.getElementByClass("stopButton"); document['player'].stopMusicExt(ta.value); ta.value = ""; }; 

你可能的意思是document.getElementsByClassName() (然后抓取结果节点列表中的第一个项目):

 var stopMusicExt = document.getElementsByClassName("stopButton")[0]; stopButton.onclick = function() { var ta = document.getElementsByClassName("stopButton")[0]; document['player'].stopMusicExt(ta.value); ta.value = ""; }; 

你可能仍然会得到这个错误

document.getElementsByClassName不是一个函数

但在较早的浏览器中,在这种情况下,如果您需要支持那些较旧的浏览器,则可以提供回退实现。

正如其他人所说,你没有使用正确的函数名称,并不是所有的浏览器univerally存在。

如果你需要使用document.getElementById()跨浏览器读取除ID以外的元素,那么我强烈build议你在所有浏览器中都支持CSS3select器。 它将为您节省大量的开发时间,testing和bug修复。 最简单的方法就是使用jQuery,因为它非常广泛,具有优秀的文档,可以免费访问CDN,并且拥有一个优秀的社区人员来回答问题。 如果这看起来不是你需要的,那么你可以得到Sizzle ,它只是一个select器库(它实际上是jQuery和其他人的select器引擎)。 我已经在其他项目中使用了它,它很容易,高效,小巧。

如果你想一次select多个节点,你可以做很多不同的方法。 如果你给他们所有的class级,你可以这样做:

 var list = document.getElementsByClassName("myButton"); for (var i = 0; i < list.length; i++) { // list[i] is a node with the desired class name } 

它将返回具有该类名称的节点的列表。

在嘶嘶声,这将是这样的:

 var list = Sizzle(".myButton"); for (var i = 0; i < list.length; i++) { // list[i] is a node with the desired class name } 

在jQuery中,这将是:

 $(".myButton").each(function(index, element) { // element is a node with the desired class name }); 

在Sizzle和jQuery中,可以像这样将多个类名放入select器中,并使用更复杂和更强大的select器:

 $(".myButton, .myInput, .homepage.gallery, #submitButton").each(function(index, element) { // element is a node that matches the selector }); 

它应该是getElementsByClassName ,而不是getElementByClass 。 看到这个 – https://developer.mozilla.org/en/DOM/document.getElementsByClassName

请注意,某些浏览器/版本可能不支持此操作。

在跳进任何进一步的错误检查之前,请先检查它是否正确

document.getElement ByClassName()本身。

仔细检查它的getElement而不是getElement

document.querySelectorAll工作得很好,可以进一步缩小你的select范围。

https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll

  enter code here var stopMusicExt = document.getElementByClass("stopButton").value; stopButton.onclick = function() { var ta = document.getElementByClass("stopButton"); document['player'].stopMusicExt(ta.value); ta.value = ""; }; // .value will hold all data from class stopButton