“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