繁体   English   中英

getElementsByClassName在IE6上不起作用。 我究竟做错了什么?

[英]getElementsByClassName doesn't work on IE6. What am I doing wrong?

我的脚本可在IE7、8、9等,Chrome,Firefox,Safari等上运行。但是,当我在IE6上运行时,它将无法正常运行。 它是一个计算功能,例如下注对银行现金=转账。

我究竟做错了什么?

这是一个工作示例

 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> 

我不知道要标记正确的答案,但这是解决问题的方法,

来自:@Phil- 我想您会在document.getElementsByClassName方面遇到一些麻烦(最低的IE支持为v9)。 改用jQuery选择器,例如$('。namount')

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

我很确定那是正确的。

<!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上尝试此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM