JavaScript值赢得';t使用getElementById方法插入HTML输入框

JavaScript值赢得';t使用getElementById方法插入HTML输入框,javascript,html,Javascript,Html,我试图建立一个非常基本的网页,基本上记录了我已经完成的各种编码挑战 我目前正试图从JavaScript中提取一个值,并将其放入HTML的输入框中。我了解innerHTML和getElementById的用法(我以前使用过这两种方法来向文本框中输入值),但这次我似乎遗漏了一些东西。我似乎无法在文本框中显示“sum”的新值 我在做什么,这是不正确的?for/if语句中的“sum”值丢失了吗?如果这太简单了,我道歉。我找不到任何使这项工作起作用的东西 <!DOCTYPE html>

我试图建立一个非常基本的网页,基本上记录了我已经完成的各种编码挑战

我目前正试图从JavaScript中提取一个值,并将其放入HTML的输入框中。我了解innerHTML和getElementById的用法(我以前使用过这两种方法来向文本框中输入值),但这次我似乎遗漏了一些东西。我似乎无法在文本框中显示“sum”的新值

我在做什么,这是不正确的?for/if语句中的“sum”值丢失了吗?如果这太简单了,我道歉。我找不到任何使这项工作起作用的东西

    <!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;