2014-04-19 154 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