2014-04-19 93 views
0

我有这样的javascript代码:的Javascript的onChange与选择/选项

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 
       } 
      } 

该代码工作如果由E选择ID获取元素。如果是班级名称,它将不起作用,请帮助我!

回答

0

(*)getElementsByClassName方法()

(*)类名你得到DOM元素的数组。

var eSelect = document.getElementsByClassName('item'); 
var len = eSelect.length; 
for(var i=0; i<len; i++) { 
    eSelect[i].onchange = function() { }; 
} 
+0

这有效,但我有超过5下拉列表,我想onChange功能是所有的人不是第一个 – user3552244

+0

然后用于循环 – sudhnk

0

可能是你正在使用

document.getElementByClassName('yourclass');//wrong 

正确了Syntex:

document.getElementsByClassName('yourclass'); 

更多信息:"document.getElementByClass is not a function"

请注意,某些浏览器/版本可能不支持此getElementsByClassN ame功能Check Details

如果你想平变化的所有选择与类:

var eSelect = document.getElementsByClassName('test'); 
for(var i=0;i<eSelect.length;i++) 
{ 
eSelect[i].onchange = function(){alert("sdfdsf");} 
} 

Demo

-1

尝试:

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

的建议getElementByClassName('item')居然还给不同的getElementById匹配元素的数组,让直接匹配元素。所以建议代码中的[0]选择该数组中的第一个也是唯一的元素。

+0

getElementByClassName是不相同的getElementsByClassName。请参阅https://developer.mozilla.org/en-US/docs/Web/API/document.getElementsByClassName – Manwal