2014-12-03 101 views
2

为什么此功能getElementsByClassName无法在IE7,8上工作?为什么这个函数getElementsByClassName不能在IE7,8上工作?

我认为造成我的问题,从

var decimal_id_name = document.getElementsByClassName('decimal')[z_decimal].id 

如何申请在IE7中,8个工作?

http://jsfiddle.net/Fp4sJ/828/

要进行测试,当用户press button,它会提醒输入的ID名称。

<form method="post" ENCTYPE = "multipart/form-data" onsubmit="return checkform(this);"> 
<input type="text" class="decimal" id="number0" size="20" name="number[]"> 
<input type="text" class="decimal" id="number1" size="20" name="number[]"> 
<input type="text" class="decimal" id="number2" size="20" name="number[]"> 
<input type="text" class="decimal" id="number3" size="20" name="number[]"> 
<input type="text" class="decimal" id="number4" size="20" name="number[]"> 
<input type="submit" name="submit" value="Next"/> 
</form> 

<script language="JavaScript" type="text/javascript"> 
function checkform (form) 
{ 
    function getElementsByClassName(node, classname) { 
     var a = []; 
     var re = new RegExp('(^|)'+classname+'(|$)'); 
     var els = node.getElementsByTagName("*"); 
     for(var i=0,j=els.length; i<j; i++) 
      if(re.test(els[i].className))a.push(els[i]); 
     return a; 
    } 
    var list_decimal = getElementsByClassName(document.body,'decimal'); 


    for (z_decimal = 0; z_decimal < list_decimal.length; ++z_decimal) { 
     var decimal_id_name = document.getElementsByClassName('decimal')[z_decimal].id 
     alert(decimal_id_name); 
    } 
    return false ; 
} 
</script> 

回答

0

getElementsByClassName不支持IE8,只有IE9及以上。你可以使用polyfill来获得功能,或者你可以使用document.querySelectorAll(selector)这是一个更强大的功能。参数selector是IE8的CSS选择器可以做的任何事情。