我有这个javascript代码:
window.onload = function() {
var eSelect = document.getElementByClassName('item');
var body = document.getElementById('body');
var face = document.getElementById('face');
var neck = document.getElementById('neck');
var feet = document.getElementById('feet');
var hand = document.getElementById('hand');
var other = document.getElementById('other');
var pin = document.getElementById('pin');
var color = document.getElementById('color');
var bg = document.getElementById('bg');
var optOtherReason = document.getElementById('myPeng');
eSelect.onchange = function() {
//Do something
}
}
如果eSelect按id获取元素,则该代码有效。如果是按类名,它将无法工作,请帮助我!
答案 0 :(得分:0)
(*)getElementsByClassName()
(*)通过类名,你得到一个dom元素数组。
var eSelect = document.getElementsByClassName('item');
var len = eSelect.length;
for( var i=0; i<len; i++ ) {
eSelect[i].onchange = function() { };
}
答案 1 :(得分:0)
可能是你正在使用
document.getElementByClassName('yourclass');//wrong
纠正Syntex:
document.getElementsByClassName('yourclass');
更多信息:"document.getElementByClass is not a function"
请注意,某些浏览器/版本可能不支持此 getElementsByClassName 函数Check Details。
如果您希望onchange for all with class:
var eSelect = document.getElementsByClassName('test');
for(var i=0;i<eSelect.length;i++)
{
eSelect[i].onchange = function(){alert("sdfdsf");}
}
答案 2 :(得分:-1)
尝试:
var eSelect = document.getElementByClassName('item')[0]
建议的getElementByClassName('item')
实际上会返回一个匹配元素数组,而不像getElementById直接给出匹配元素。因此,建议代码中的[0]
选择该数组中的第一个也是唯一的元素。