首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >"document.getElementByClass不是一个函数“

"document.getElementByClass不是一个函数“
EN

Stack Overflow用户
提问于 2011-09-20 13:21:10
回答 12查看 680.3K关注 0票数 155

我正在尝试用class="stopMusic"运行任何按钮的函数onclick。我在Firebug中遇到一个错误

document.getElementByClass不是一个函数

下面是我的代码:

代码语言:javascript
复制
var stopMusicExt = document.getElementByClass("stopButton");
    stopButton.onclick = function() {
        var ta = document.getElementByClass("stopButton");
        document['player'].stopMusicExt(ta.value);
        ta.value = "";
    };
EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-09-20 13:23:30

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

代码语言:javascript
复制
var stopMusicExt = document.getElementsByClassName("stopButton")[0];

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

您可能仍然会得到错误

document.getElementsByClassName不是一个函数

但是,在较旧的浏览器中,如果需要支持这些较旧的浏览器,则可以提供一个后备实现。

票数 271
EN

Stack Overflow用户

发布于 2011-09-20 13:45:48

正如其他人所说,您没有使用正确的函数名称,并且它并不是在所有浏览器中都普遍存在。

如果您需要跨浏览器获取带有document.getElementById()的id元素以外的任何内容,那么我强烈建议您获得一个支持跨所有浏览器的CSS3选择器的库。它将为您节省大量的开发时间、测试和错误修复。最简单的做法是直接使用jQuery,因为它广泛可用,有出色的文档,有免费的CDN访问,并且有一个优秀的社区成员在背后回答问题。如果这看起来比你需要的要多,那么你可以得到Sizzle,它只是一个选择器库(它实际上是jQuery和其他库中的选择器引擎)。我已经在其他项目中使用过它,它简单、高效、小巧。

如果要一次选择多个节点,可以使用许多不同的方法。如果你给他们相同的类,你可以这样做:

代码语言:javascript
复制
var list = document.getElementsByClassName("myButton");
for (var i = 0; i < list.length; i++) {
    // list[i] is a node with the desired class name
}

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

在Sizzle中,它是这样的:

代码语言:javascript
复制
var list = Sizzle(".myButton");
for (var i = 0; i < list.length; i++) {
    // list[i] is a node with the desired class name
}

在jQuery中,它是这样的:

代码语言:javascript
复制
$(".myButton").each(function(index, element) {
    // element is a node with the desired class name
});

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

代码语言:javascript
复制
$(".myButton, .myInput, .homepage.gallery, #submitButton").each(function(index, element) {
    // element is a node that matches the selector
});
票数 15
EN

Stack Overflow用户

发布于 2016-06-18 13:35:06

在进入任何进一步的错误检查之前,请先检查它的

document.getElementsByClassName()本身。

仔细检查其getElement ,而不是getElement

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7480496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档