2014-11-07 85 views
0

我的脚本适用于IE7,8,9等,Chrome,Firefox,Safari等,但是当我在IE6上运行它时,它不起作用。这是一个计算功能,比如在银行=转账上投注与现金。getElementsByClassName在IE6上不起作用。我究竟做错了什么?

我在做什么错?

这里有一个working sample

var a, p = document.getElementsByClassName("preAmount"); 
 
var mark = new Array(); 
 

 
$(function() { 
 
    $('input').each(function() { 
 
     $(this).keyup(function() { 
 
      var w = $(this).val(), 
 
       n = w.indexOf("."), 
 
       z = w.indexOf("0"); 
 
      //allow 2 digit decimal 
 
      if (n > 0 && (w.length - n) > 3) { 
 
       $(this).val(parseFloat(w.substring(0, n) + w.substring(n, n + 3))); 
 
      } 
 
      //reset beginning with zero 
 
      if (z == 0) { 
 
       $(this).val(w * 1); 
 
      } 
 
      //set zero 
 
      if (isNaN(w) || w.length == 0) { 
 
       $(this).val("0"); 
 
      } 
 
      calculateTotal($(this)); 
 
     }); 
 
    }); 
 
    $(".enableOnInput").click(function() { 
 
     var submitValid = false; 
 
     if (mark.length > 0) { 
 
      for (k = 0; k < mark.length; k++) { 
 
       // if one of the mark in array is true, it's valid to submit 
 
       if (mark[k] == true) { 
 
        submitValid = true; 
 
        break; 
 
       }; 
 
      } 
 
     } 
 
     if (submitValid) { 
 
      window.open("success.html", "_self"); 
 
     } else { 
 
      alert('您尚未更新游戏平台转帐资金!\n\nYou have not alter transfer amount!'); 
 
     } 
 

 
    }); 
 
    $(".reset").click(function() { 
 
     a = document.getElementsByClassName('namount'); 
 
     for (k = 0; k < a.length; k++) { 
 
      a[k].value = parseFloat(p[k].innerHTML, 10); 
 
     } 
 
     $('.balance-value').text($('.t-right-title-balance').text()); 
 
     mark = new Array(); 
 
    }); 
 
}); 
 

 
function cal() { 
 
    var ta = 0, 
 
     tp = 0, 
 
     tb = parseFloat($('.t-right-title-balance').text()); 
 
    a = document.getElementsByClassName('namount'); 
 
    for (j = 0; j < p.length; j++) { 
 
     var ttp, tta; 
 
     ttp = parseFloat(p[j].innerHTML); 
 
     tta = parseFloat(a[j].value); 
 
     tp += ttp; 
 
     ta += tta; 
 
     mark[j] = (ttp != tta); //set alter mark of each platform 
 
    } 
 
    return (tb + tp - ta); 
 
} 
 

 
function calculateTotal(src) { 
 
    var sumtable = src.closest('.sumtable'); 
 
    sumtable.find('input').each(function() { 
 
     var preAmount = $(this).parent().parent().find('.preAmount').text(); 
 
     var curAmount = this.value; 
 
     if (!isNaN(this.value) && this.value.length != 0) { 
 
      preAmount = parseFloat(preAmount); 
 
      curAmount = parseFloat(this.value); 
 
      var f = parseFloat($('.t-right-title-balance').text()).toFixed(2); 
 
      var transAmount = curAmount - preAmount; 
 
      if (curAmount < 0 || transAmount > f) { 
 
       this.value = preAmount; 
 
       $('.balance-value').text(f); 
 
       return; 
 
      } else { 
 
       var b = parseFloat($('.balance-value').text()); 
 
       var tb = cal(); 
 
       if (tb >= 0) { 
 
        $('.balance-value').text(tb.toFixed(2)); 
 
       } else { 
 
        this.value = preAmount; //illegal rollback 
 
        $('.balance-value').text(tb.toFixed(2)); 
 
        return; 
 
       } 
 
      } 
 
     } 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

+0

检查了这一点试试这个: http://jquery.com/browser-support/ – 2014-11-07 01:54:09

+5

你做错了什么?使用IE6! – Bergi 2014-11-07 02:00:20

+1

我想你会遇到'document.getElementsByClassName''(最小的IE支持是v9)。使用jQuery选择器,例如'$('。namount')' – Phil 2014-11-07 02:02:18

回答

1

我不知道标记正确的答案,但是这是固定的,

来源:@Phil - 我想象一下你在document.getElementsByClassName方面有点麻烦(最低IE支持是v9)。使用jQuery选择代替,例如:$( 'namount')

0

根据W3C: getElementsByClassName()方法不Internet Explorer 8中和更早版本的支持。

我很确定这是正确的。

<!DOCTYPE html> 
<html> 
<body> 
<p class="demo">Test.</p> 
<button onclick="myFunction()">Click me!</button> 
<script> 
     function myFunction() { 
      document.getElementsByClassName('demo').innerHTMl = "Hallo!"; 
     } 
</script> 
</body> 
</html> 

您可以在Internet Explorer 6或5

相关问题