JavaScript值赢得';t使用getElementById方法插入HTML输入框
我试图建立一个非常基本的网页,基本上记录了我已经完成的各种编码挑战 我目前正试图从JavaScript中提取一个值,并将其放入HTML的输入框中。我了解innerHTML和getElementById的用法(我以前使用过这两种方法来向文本框中输入值),但这次我似乎遗漏了一些东西。我似乎无法在文本框中显示“sum”的新值 我在做什么,这是不正确的?for/if语句中的“sum”值丢失了吗?如果这太简单了,我道歉。我找不到任何使这项工作起作用的东西JavaScript值赢得';t使用getElementById方法插入HTML输入框,javascript,html,Javascript,Html,我试图建立一个非常基本的网页,基本上记录了我已经完成的各种编码挑战 我目前正试图从JavaScript中提取一个值,并将其放入HTML的输入框中。我了解innerHTML和getElementById的用法(我以前使用过这两种方法来向文本框中输入值),但这次我似乎遗漏了一些东西。我似乎无法在文本框中显示“sum”的新值 我在做什么,这是不正确的?for/if语句中的“sum”值丢失了吗?如果这太简单了,我道歉。我找不到任何使这项工作起作用的东西 <!DOCTYPE html>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
var sum = 0;
for (i = 0; i < 1000; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum = sum += i;
}
}
var totalSum = sum;
getElementById("answer1").innerHTML = totalSum;
</script>
<h1>Challenge 1</h2>
<p>Find the sum of all the multiples of 3 or 5 below 1000 (begin with 10, then work up).</p>
<p>Answer is
<input type="text" id="answer1"></input>
</p>
</body>
</html>
var总和=0;
对于(i=0;i<1000;i++){
如果(i%3==0 | | i%5==0){
sum=sum+=i;
}
}
var totalSum=总和;
getElementById(“answer1”).innerHTML=totalSum;
挑战1
找出1000以下所有3或5的倍数之和(从10开始,然后向上)
答案是
input
是单个标记元素,不能包含内部HTML。改为设置值
属性。它也是document.getElementById
,而不仅仅是getElementById
document.getElementById("answer1").value = totalSum;
您还应该将脚本放在元素下面,或者将其附加到窗口。onload
<script>
window.addEventListener('load', function () {
var sum = 0;
for (i = 0; i < 1000; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum = sum += i;
}
}
var totalSum = sum;
document.getElementById("answer1").value = totalSum;
});
</script>
window.addEventListener('load',函数(){
var总和=0;
对于(i=0;i<1000;i++){
如果(i%3==0 | | i%5==0){
sum=sum+=i;
}
}
var totalSum=总和;
document.getElementById(“answer1”)。值=总和;
});
无标题
文本区{
溢出:自动;
}
挑战1
找出1000以下所有3或5的倍数之和(从10开始,然后向上)
答案是
$(文档).ready(函数(){
var总和=0;
对于(i=0;i<1000;i++){
如果(i%3==0 | | i%5==0){
sum=sum+=i;
}
}
控制台日志(总和);
var totalSum=总和;
控制台日志(总和);
document.getElementById(“answer1”)。值=总和;
});
您需要在文档对象上调用getElementById。此外,您希望设置输入属性,而不是innerHTML
document.getElementById("answer1").value = totalSum;
见var总和=0;
对于(i=0;i<1000;i++){
如果(i%3==0 | | i%5==0){
sum=sum+=i;
}
}
var totalSum=总和;
document.getElementById(“answer1”)。值=总和;
原因是您使用的是innerHTML
属性,而不是value
属性。与其他DOM元素不同,Input没有innerHTML
属性,因为它是单个标记元素。还有一个语法错误:它是document.getElementById
而不仅仅是getElementById
document.getElementById("answer1").value = totalSum;
这里有一个正在工作的我可以发誓它是document.getElementById不仅仅是getElementById
另外,尝试将JavaScript放在底部。您正在尝试操作页面上尚未呈现的元素。您正在尝试在元素呈现到页面之前写入元素。我最近有一位讲师发誓它可以是或。他经常使用只包含“getElementById”而不包含“docuement.getElementById”的示例。我将继续使用document.getElementById来消除这个错误。
var sum = 0;
for (i = 0; i < 1000; i++) {
if (i % 3 === 0 || i % 5 === 0) {
sum = sum += i;
}
}
var totalSum = sum;
document.getElementById("answer1").value = totalSum;