use*_*794 135 javascript
我正在尝试运行onClick任何按钮的功能onclick.我在Firebug中收到错误
document.getElementByClass不是函数
这是我的代码:
var stopMusicExt = document.getElementByClass("stopButton");
stopButton.onclick = function() {
var ta = document.getElementByClass("stopButton");
document['player'].stopMusicExt(ta.value);
ta.value = "";
};
Run Code Online (Sandbox Code Playgroud)
Bol*_*ock 236
您可能意味着document.getElementsByClassName()(然后从结果节点列表中抓取第一个项目):
var stopMusicExt = document.getElementsByClassName("stopButton")[0];
stopButton.onclick = function() {
var ta = document.getElementsByClassName("stopButton")[0];
document['player'].stopMusicExt(ta.value);
ta.value = "";
};
Run Code Online (Sandbox Code Playgroud)
您可能仍会收到错误消息
document.getElementsByClassName不是一个功能
但是,在旧版浏览器中,如果您需要支持这些旧版浏览器,则可以提供回退实现.
jfr*_*d00 14
正如其他人所说,你没有使用正确的功能名称,并且在所有浏览器中都不存在.
如果你需要跨浏览器提取除了带有id的元素以外的任何东西document.getElementById(),那么我强烈建议你在所有浏览器中获得一个支持CSS3选择器的库.它将为您节省大量的开发时间,测试和错误修复.最简单的方法就是使用jQuery,因为它可以广泛使用,具有出色的文档,可以免费访问CDN,并且有很好的社区人员可以回答问题.如果这看起来比您需要的多,那么您可以获得Sizzle,它只是一个选择器库(它实际上是jQuery和其他内部的选择器引擎).我已经在其他项目中单独使用它,它简单,高效且小巧.
如果要一次选择多个节点,可以采用多种不同的方式.如果你给他们所有相同的课程,你可以这样做:
var list = document.getElementsByClassName("myButton");
for (var i = 0; i < list.length; i++) {
// list[i] is a node with the desired class name
}
Run Code Online (Sandbox Code Playgroud)
它将返回具有该类名的节点列表.
在Sizzle,它将是这样的:
var list = Sizzle(".myButton");
for (var i = 0; i < list.length; i++) {
// list[i] is a node with the desired class name
}
Run Code Online (Sandbox Code Playgroud)
在jQuery中,它将是这样的:
$(".myButton").each(function(index, element) {
// element is a node with the desired class name
});
Run Code Online (Sandbox Code Playgroud)
在Sizzle和jQuery中,您可以将多个类名放入选择器中,并使用更复杂和强大的选择器:
$(".myButton, .myInput, .homepage.gallery, #submitButton").each(function(index, element) {
// element is a node that matches the selector
});
Run Code Online (Sandbox Code Playgroud)
小智 12
我的解决方案是:
改变:
document.getElementsByClassName('.className')
Run Code Online (Sandbox Code Playgroud)
到:
document.querySelector('.className')
Run Code Online (Sandbox Code Playgroud)
小智 10
在进入任何进一步的错误检查之前,请先检查一下
document.getElement s ByClassName()本身.
仔细检查其getElement 小号,而不是getElement
它应该是getElementsByClassName,而不是getElementByClass.请参阅此内容 - https://developer.mozilla.org/en/DOM/document.getElementsByClassName.
请注意,某些浏览器/版本可能不支持此功能.
| 归档时间: |
|
| 查看次数: |
565126 次 |
| 最近记录: |