什么';这个简单的javascript代码中有什么错误?

什么';这个简单的javascript代码中有什么错误?,javascript,html,Javascript,Html,我想做一个程序,可以把给定数字中的所有数字相加。我希望我的脚本返回点击按钮的结果。请帮助我查找代码中的错误。谢谢 <!doctype html> <html> <head> <script type="text/javascript"> function sumdigits() { var num=document.getElementById("a").value; var len=num.length(); alert(

我想做一个程序,可以把给定数字中的所有数字相加。我希望我的脚本返回点击按钮的结果。请帮助我查找代码中的错误。谢谢

<!doctype html>
<html>
<head>
<script type="text/javascript">
function sumdigits()
{
    var num=document.getElementById("a").value;
    var len=num.length();
    alert(len);

    if(len!=0)
    {
        var sum=0;
        var ldigit=0;

        while(num!=0)
        {
            ldigit=num%10;
            sum+=ldigit;
            num/=10;
        }
    }
    document.getElementById("result").innerHTML="Sum of digits of the given number="+sum;
}
</script>
</head>

<body>
    Enter a number: <input type="text" id="a" name="t1"><br/>
    <input type="button" name="sub" value="Submit" onClick="sumdigits()">
    <div id="result">&nbsp;</div>
</body>
</html>

函数sumdights()
{
var num=document.getElementById(“a”).value;
var len=num.length();
警报(len);
如果(len!=0)
{
var总和=0;
var ldigit=0;
while(num!=0)
{
ldigit=num%10;
总和+=ldigit;
num/=10;
}
}
document.getElementById(“结果”).innerHTML=“给定数字的位数总和=”+总和;
}
输入一个数字:

onClick
应为
onClick
length()
应为
length
sum
不超出范围

function sumdigits(){

    var num = document.getElementById("a").value;
    var len = num.length;   // note "length"
    var sum;                // "sum" scope
    alert(len);

    if(len!==0){
        sum = 0;
        var ldigit=0;

        while(num!==0){
            ldigit=num%10;
            sum += ldigit;
            num /= 10;
        }
    }
    document.getElementById("result").innerHTML="Sum of digits of the given number = "+ sum;

}

这是如何使它工作的,现在,我不知道你试图在那里应用什么数学,它的目的是什么…

脚本中断的主要原因是因为你正在对num变量而不是num.length调用length()。下面是一个链接,链接到一个工作的小提琴和一些其他调整(检查值是否是整数等)


输入一个数字:
函数sumdights() { var总和=0, num=document.getElementById(“a”).value, len=num.length, 结果=document.getElementById(“结果”); 如果(len!==0){ 对于(变量i=0;i
如果您告诉我们出了什么问题,这会有所帮助。除了
num
是字符串,您试图在数学运算中使用它之外?length()不是函数。您可能需要num.lengthAlso,您的HTML格式不正确<代码>标记应该是自动关闭的。您缺少右尖括号前的斜杠。@BrianWarshaw这不是HTML所要求的。这仍然是一个很好的建议。但是,它没有丢失或变形。谢谢@Roko C.Buljain的更正。基本上我犯了一个愚蠢的错误,或者你说在计算变量num的长度时犯了一个错误。谢谢
<!doctype html>
<html>
<head>

</head>

<body>
    <form onsubmit="sumdigits()">
    Enter a number: <input type="text" id="a" name="t1"><br/>
    <input type="button" name="sub" value="Submit" onClick="sumdigits()">
    <div id="result">&nbsp;</div>
    </form>
</body>
</html>

function sumdigits()
{
    var sum = 0,
        num = document.getElementById("a").value,
        len = num.length,
        result = document.getElementById("result");

    if( len !== 0 ){
        for( var i = 0; i < len; i++){
            var lineValue = parseInt(num[i], 0);
            if ( !isNaN(lineValue) ) {
                sum += lineValue;
            }
        }
    }

    result.innerHTML="Sum of digits of the given numbers = " + sum;

}