2017-03-17 52 views
0

任何人都可以在下面的JavaScript代码中帮助我吗?我不能够得到输出

<!DOCTYPE html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="UTF-8"> 
 
    <script> 
 
    var arr = new Array(1, 10, 8, 56, 12, 45); 
 
    document.getElementById("srt").innerHTML = arr; 
 

 
    function asc() { 
 
     arry.sort(function(a, b) { 
 
     return a - b; 
 
     }) 
 
     document.getElementById("srt").innerHTML = arr; 
 
    } 
 

 
    function desc() { 
 
     arry.sort(function(a, b) { 
 
     return b - a; 
 
     }) 
 
     document.getElementById("srt").innerHTML = arr; 
 
    } 
 
    </script> 
 
</head> 
 

 
<body bgcolor="aqua"> 
 
    <div> 
 
    <h4>Click the button to sort the Array.</h4> 
 
    </div> 
 

 
    <div><input type="button" onclick="asc()" value="Ascending"></div> 
 
    <div><input type="button" onclick="desc()" value="Descending"></div> 
 

 
    <div> 
 
    <h4><span id="srt"></span></h4> 
 
    </div> 
 
</body> 
 

 
</html>

请检查我的javascript code.I想我会错了地方不对劲的地方。当我点击按钮排序的数组没有得到显示。

+0

问题是您在尝试访问元素之前,它呈现。尝试包装你的代码加载('window.addEventListener('加载',函数(){//你的代码在这里})')事件或加载资源末尾 – Rajesh

+0

也有一个错字。 'arry.sort'?它应该是'arr.sort' – Rajesh

+0

没有这个更正和答案@Rajesh lol :) :) – user7417866

回答

0

由于拉杰什指出,无论是你应该在HTML中的主体的末尾定义JavaScript或将Javascript代码放到一个将被调用时结构页面已加载并准备就绪。

<!DOCTYPE html> 
<html lang="en"> 

<head> 
    <meta charset="UTF-8"> 
</head> 

<body bgcolor="aqua"> 
    <div> 
    <h4>Click the button to sort the Array.</h4> 
    </div> 

    <div><input type="button" onclick="asc()" value="Ascending"></div> 
    <div><input type="button" onclick="desc()" value="Descending"></div> 

    <div> 
    <h4><span id="srt"></span></h4> 
    </div> 

    <script> 
    var arr = new Array(1, 10, 8, 56, 12, 45); 
    document.getElementById("srt").innerHTML = arr; 

    function asc() { 
     arr.sort(function(a, b) { 
     return a - b; 
     }) 
     document.getElementById("srt").innerHTML = arr; 
    } 

    function desc() { 
     arr.sort(function(a, b) { 
     return b - a; 
     }) 
     document.getElementById("srt").innerHTML = arr; 
    } 
    </script> 
</body> 

</html> 
+0

感谢您的信用,但如果您阅读其他答案的评论,它的错误回答。我会要求你删除你的答案。 – Rajesh

+0

对不起,但我无法得到哪个部分是错误的回答。上面的代码正在工作? –

+0

其错误的原因是因为对错误错误的任何更正就像是*帮助我调试*的邀请。其次,你的答案不会增加任何价值,因为如果OP看到控制台,这个错误可能已经解决。所以这样的问题不应该存在,但OP将无法删除,因为有答案。因此,你应该评论通知OP但不回答。 – Rajesh

-1

除了输入错误,js代码没有错误(没有为arry定义的东西)。

问题是您在DOM准备好之前正在加载脚本。

在这种情况下document.getElementById不会随着元件的工作没有出现在DOM

var arr = new Array(1, 10, 8, 56, 12, 45); 
document.getElementById("srt").innerHTML = arr; 

function asc() { 
    arr.sort(function(a, b) { 
    return a - b; 
    }) 
    document.getElementById("srt").innerHTML = arr; 
} 

function desc() { 
    arr.sort(function(a, b) { 
    return b - a; 
    }) 
    document.getElementById("srt").innerHTML = arr; 
} 

当DOM准备好您可以加载代码,或者如果你还在用window.onload

<body> 
../Rest of the code 
<script> 
    // js code 
</script> 
</body> 

否则想要在代码中加载代码使用

`window.onload` = function() { 
    // your code 
}; 

您可以探索另一种选择是DOMContentLoaded

<script> 
    document.addEventListener("DOMContentLoaded", function(event) { 
    // your code here 
    }); 
</script> 

DEMO

+0

如果你真的回答了印刷错误? – Rajesh

+1

让这个答案在这里。让人们知道有一些演员兄弟只是因为格式问题才投票回答。 – brk

+0

*格式化问题*?所以你看到一个印刷问题,不要投票结束并回答。请告诉我们这个问题会在门户网站中添加什么?我没有任何反对任何人。是的,我渴望失踪的解释,但是这是为了鼓励添加解释,并且在添加后撤回我的投票。也让不辩论,但回答错误的错误是错误的 – Rajesh

相关问题