有人能在下面的Javascript代码中帮助我吗?I';I’我不能得到输出
有人能在下面的Javascript代码中帮助我吗?I';I’我不能得到输出,javascript,html,Javascript,Html,var arr=新数组(1,10,8,56,12,45); document.getElementById(“srt”).innerHTML=arr; 函数asc(){ arry.sort(函数(a,b){ 返回a-b; }) document.getElementById(“srt”).innerHTML=arr; } 函数desc(){ arry.sort(函数(a,b){ 返回b-a; }) document.getElementById(“srt”).innerHTML=arr; } 单
var arr=新数组(1,10,8,56,12,45);
document.getElementById(“srt”).innerHTML=arr;
函数asc(){
arry.sort(函数(a,b){
返回a-b;
})
document.getElementById(“srt”).innerHTML=arr;
}
函数desc(){
arry.sort(函数(a,b){
返回b-a;
})
document.getElementById(“srt”).innerHTML=arr;
}
单击按钮对数组进行排序。
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就绪时加载代码,也可以使用窗口。onload
<body>
../Rest of the code
<script>
// js code
</script>
</body>
您可以探索的另一个选项是DOMContentLoaded
<script>
document.addEventListener("DOMContentLoaded", function(event) {
// your code here
});
</script>
document.addEventListener(“DOMContentLoaded”),函数(事件){
//你的代码在这里
});
正如Rajesh所指出的,要么在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>
单击按钮对数组进行排序。
var arr=新数组(1,10,8,56,12,45);
document.getElementById(“srt”).innerHTML=arr;
函数asc(){
arr.sort(函数(a,b){
返回a-b;
})
document.getElementById(“srt”).innerHTML=arr;
}
函数desc(){
arr.sort(函数(a,b){
返回b-a;
})
document.getElementById(“srt”).innerHTML=arr;
}
问题是您试图在呈现元素之前访问它。尝试在加载(window.addEventListener('load',function(){//your code here})
)事件或加载资源结尾处包装代码。此外,还有一个输入错误<代码>到达排序?应该是arr.sort
这不是一个更正吗?回答@Rajesh lol:):)@user7417866我不想再讨论了。回答打字错误是错误的。你可以做报复投票(像少数),但我准备揭露这一点,以增加一些纪律。请记住,这是我们的门户,我们必须管理it@Rajesh即使我也不感兴趣,是你开创了巴迪。。如果你在谈论纪律,你应该知道,它总是从你开始…你真的应该回答一个印刷错误吗?让这个答案在这里。让人们知道有一些演艺界的家伙仅仅因为格式问题而否决了投票答案。格式问题?所以你看到一个排版问题,不要投票来结束并回答它。请告诉我们这个问题会给门户网站增加什么?我不反对任何人。是的,我对遗漏的解释投了反对票,但这是为了鼓励添加解释,一旦添加解释,我就收回我的投票。也不要辩论,,但回答一个打字错误只是wrong@brk他可能认为回答是错误的,但对典型错误的评论是正确的。他自己也评论了打字错误和更正lol:)我不知道是否有些人是如此盲目,以至于他们看不到这行“问题是你在DOM准备好之前加载脚本。在这种情况下,document.getElementById将无法工作,因为DOM'中不存在该元素。即使在格式化之前,这些行仍然可见。对他们来说,这不是解释。我认为这些台词来自一些幻想故事。是的,最好不要争论。成熟不是从集市上可以买到的东西。谢谢你的表扬,但如果你读了其他答案的评论,那么回答是错误的。我会要求你删除你的答案。很抱歉,我不知道哪一部分是错误的答案。上面的代码正在运行?它出错的原因是,任何对打字错误的纠正都像是邀请我帮助调试。第二,您的答案不会增加任何价值,因为如果OP有see控制台,这个错误本可以解决。因此,此类问题不应存在,但OP将无法删除,因为有答案。因此,您应该发表评论以通知OP,而不是回答。如果您还有任何疑问,也可以随时询问。:-)当我达到50岁时,我可能更喜欢评论:)
<!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>