2014-11-07 109 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

相關問題