Javascript onChange with select / option

时间:2014-04-19 17:36:11

标签: javascript

我有这个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获取元素,则该代码有效。如果是按类名,它将无法工作,请帮助我!

3 个答案:

答案 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");}
}

Demo

答案 2 :(得分:-1)

尝试:

var eSelect = document.getElementByClassName('item')[0]

建议的getElementByClassName('item')实际上会返回一个匹配元素数组,而不像getElementById直接给出匹配元素。因此,建议代码中的[0]选择该数组中的第一个也是唯一的元素。