脚本在Chrome中运行,但在Firefox中没有

时间:2015-01-06 06:03:07

标签: javascript cross-browser

我正在关注一个JS教程,只是制作了一个像Chrome中的魅力一样的抵押计算器,但它在Firefox中没有任何作用。我可以得到一些帮助来解决这个问题吗? Here's the whole thing

// Formula: c = ((p * r) *  math.pow((1 + r), n)) / (math.pow((1 + r), n) - 1)

//@param p float Amount borrowed
//@param r interest as percentage
//@param n term in years

function percentToDecimal(percent) {
return (percent / 12) / 100;
}

function yearsToMonths(years) {
return years * 12;
}

function calculateMortgage(p, r, n) {
// convert this percentage to decimal:
r = percentToDecimal(r);
n = yearsToMonths(n);

var pmt = ((p * r) * Math.pow((1 + r), n)) / (Math.pow((1 + r), n) - 1);

return parseFloat(pmt.toFixed(2));

}

function postpayments(payment) {
var payments = document.getElementById("outMonthly");
payments.innerText = "$" + payment;
}

var btn = document.getElementById("btnCalculate");
btn.onclick = function () {
var cost = document.getElementById("inCost").value;
var downpayment = document.getElementById("inDown").value;
var interest = document.getElementById("inAPR").value;
var term = document.getElementById("inPeriod").value;

var amountBorrowed = cost - downpayment;

var pmt = calculateMortgage(amountBorrowed, interest, term);

postpayments(pmt);
};

2 个答案:

答案 0 :(得分:2)

payments.innerText替换为payments.textContent

答案 1 :(得分:1)

如果您想在所有浏览器中使用它,一个干净的解决方案是创建一个TextNode并将其附加到视图。

function postpayments(payment) {
    var payments = document.getElementById("outMonthly");
    while (payments.firstChild!==null)
        element.removeChild(payments.firstChild); // remove all existing content
    payments.appendChild(document.createTextNode("$" + payment));
}

选中此处了解详情:https://stackoverflow.com/a/1359834/891092