繁体   English   中英

Document.write不起作用

[英]Document.write not working

我有一个javascript函数来计算总金额:

<script>
function calculate(v)
{

    v = parseFloat(v);
    v = v + 19;
    //alert(v);
    document.write.getElementById("total") = v;

}

</script>

<head></head>部分中。 我从调用此函数:

Select amount you want to buy : <input type="text" name="qty"  onkeyup="calculate(this.value)"/> grams

我试图在这里显示v值:

<div id="total"><script> document.write(v);</script></div>

但是它什么也没显示。 为什么?

document.write仅适用于“打开”的文档。 到达文件末尾时,将关闭文档以进行写入(至少通过那些过时的方式)。 我相信大多数浏览器只会忽略尝试写入已关闭文档的尝试,但是有些浏览器可能会抛出错误。

这里还有其他问题,您不是在调用document.write()而是试图访问该函数的另一个字段(或子字段) getElementById ,该字段不存在。

最后,在最后的代码中,您试图将v的值写入到calculate()函数中,因此它实际上不在该范围之内。

其他一些人已经指出了解决办法,即document.getElementById('total').innerHTML = <your value> 访问innerHTML并不是最干净的方法,但是它可以在所有主流浏览器中使用,并且易于理解。

希望对正在发生的事情进行一点解释是有帮助的。 祝好运! (如果您进一步学习它,可以考虑学习许多javascript框架之一-它们可以提供很大的帮助。Prototype.js,jQuery,Dojo,MooTools等都很好。)

您对document.write()工作方式有误解。

可能想要...

var elem = document.getElementById("total");

if (elem.textContent) {
   elem.textContent = v;
} else {
   elem.innerText = v;
}
document.write.getElementById("total") = v;

这不是document.write工作方式,并且会在JavaScript控制台中引发错误。 始终确保首先检查控制台是否存在可能的错误。

您正在寻找.innerHTML

//document.write.getElementById("total") = v;
document.getElementById("total").innerHTML = v;
you can do this

 document.getElementById("total").innerHTML = v;

 document.write(v);

:不正确的document.write.getElementById("total") = v;

document.getElementById("total").innerHTML = v;

暂无
暂无

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

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