innerHTML 不打印任何东西
innerHTML not printing anything
我正在为考试尝试一些东西,但无法让它发挥作用。这真的很简单,我不明白为什么不起作用。
<!DOCTYPE html>
<html>
<head>
<title>Exercici 2</title>
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
alert(arguments.length);
//donaria undefined, ja que no existeix el argument amb índex 2, tindria que ser [1]
alert(arguments[2]);
//3 + 5 = 8
return a + b;
}
var result = suma(3,5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
</script>
</head>
<body>
<div id="result">
</div>
</body>
</html>
我知道alert(arguments[2]);
会显示undefined。
问题是您在呈现 DOM 之前调用函数。所以 result
不可用。将你的脚本移到正文之后。
<html>
<head>
<title>Exercici 2</title>
</head>
<body>
<div id="result">
</div>
</body>
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
//3 + 5 = 8
return a + b;
}
var result = suma(3, 5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
</script>
</html>
使用求和时,建议添加 parseInt
,
这样你也可以添加 var result = suma('3', 5);
它会 return 8,如果你没有 parseInt 并且你解析一个 string '3'
它会连接它并且会 return 35
function suma(a, b) {
//3 + 5 = 8
return parseInt(a) + parseInt(b);
}
var result = suma(3, 5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
您需要一个 onload 才能使其工作,因为您在元素存在之前通过 Id 调用了 getElement 并且它没有意义。另外你的输出必须是一个字符串。
对于这种情况,您需要一个 "onload" 函数,因为您在元素之前声明了 getElemetnById,并且函数中的输出也应该是一个字符串。
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
//a = argumento 0, b = argumento 1
return (a + b).toString();
}
//estas ejecutando esto, sin antes existir el id="result", por tanto debes esperar
// aque primero se cree, y luego ejecutar, eso se hace añadiendo esto:
window.onload = function(){ //espera a que todos los elements html se creen.
var result = suma(3,5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
}
</script>
我正在为考试尝试一些东西,但无法让它发挥作用。这真的很简单,我不明白为什么不起作用。
<!DOCTYPE html>
<html>
<head>
<title>Exercici 2</title>
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
alert(arguments.length);
//donaria undefined, ja que no existeix el argument amb índex 2, tindria que ser [1]
alert(arguments[2]);
//3 + 5 = 8
return a + b;
}
var result = suma(3,5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
</script>
</head>
<body>
<div id="result">
</div>
</body>
</html>
我知道alert(arguments[2]);
会显示undefined。
问题是您在呈现 DOM 之前调用函数。所以 result
不可用。将你的脚本移到正文之后。
<html>
<head>
<title>Exercici 2</title>
</head>
<body>
<div id="result">
</div>
</body>
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
//3 + 5 = 8
return a + b;
}
var result = suma(3, 5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
</script>
</html>
使用求和时,建议添加 parseInt
,
这样你也可以添加 var result = suma('3', 5);
它会 return 8,如果你没有 parseInt 并且你解析一个 string '3'
它会连接它并且会 return 35
function suma(a, b) {
//3 + 5 = 8
return parseInt(a) + parseInt(b);
}
var result = suma(3, 5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
您需要一个 onload 才能使其工作,因为您在元素存在之前通过 Id 调用了 getElement 并且它没有意义。另外你的输出必须是一个字符串。
对于这种情况,您需要一个 "onload" 函数,因为您在元素之前声明了 getElemetnById,并且函数中的输出也应该是一个字符串。
<script type="text/javascript">
//rep 2 paràmetres d'entrada i els suma
function suma(a, b) {
//a = argumento 0, b = argumento 1
return (a + b).toString();
}
//estas ejecutando esto, sin antes existir el id="result", por tanto debes esperar
// aque primero se cree, y luego ejecutar, eso se hace añadiendo esto:
window.onload = function(){ //espera a que todos los elements html se creen.
var result = suma(3,5);
document.getElementById("result").innerHTML += "<strong>Suma</strong>: 3 + 5 = " + result + "<br>";
}
</script>