【发布时间】:2019-12-11 11:21:52
【问题描述】:
所以伙计们,我这里有这个代码:
var pinakasPinakas= [2, 43, -21, 25, 34, -9, -50, 60, 12, -3];
var sum=0;
for (var i=0; i<pinakasPinakas.length; i++){
if (pinakasPinakas [i] >0){
sum=sum+pinakasPinakas[i];
}
}
document.getElementById("summy").innerHTML="Sum: " +sum+ ".<br>"
var multi=1;
for (var i=0; i<pinakasPinakas.length; i++){
if(pinakasPinakas[i] > 0){
multi=multi*pinakasPinakas[i];
}
}
document.getElementById("multipl").innerHTML="multi: " +multi+ ".<br>"
for (var i=0; i<pinakasPinakas.length; i++){
if(pinakasPinakas[i]<0){
document.getElementById("negative").innerHTML=(pinakasPinakas[i]);
// document.write(pinakasPinakas[i])
}}
//
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
ul {
list-style-type: none;
margin: 0;
padding: 0;
width: 400px;
background-color: rgb(108, 162, 231);
border: 1px solid rgb(3, 24, 63);
}
li a {
display: block;
color: rgb(24, 12, 27);
text-decoration: none;
padding: 5px 11px;
}
li a:hover:not(.active) {
background-color: rgb(64, 102, 151);
color: rgb(15, 30, 37);
}
li {
text-align: center;
border-bottom: 2px solid rgb(6, 47, 100);
}
li:last-child {
border-bottom: none;
}
li a.active {
background-color: rgb(0, 82, 189);
color: rgb(25, 15, 27);
}
h2{color: rgb(10, 47, 116);}
p{color: darkblue;}
</style>
</head>
<body>
<ul>
<li><a href="#page1.html" class="active">Page 1</a></li>
<li><a href="page2.html"> Page 2</a></li>
</ul>
<h2>Πρόσθεση & Γινόμενο θετικών αριθμών</h2>
<p id="summy"></p>
<p id="multipl"></p>
<h2>Εμφάνιση αρνητικών αριθμών</h2>
<p id="negative"></p>
<script src="Page1.js"></script>
</body>
</html>
我的“项目”是将数组中的正数相乘和相加,并将它们中的每一个放在一个“ID”中,这当然是在我的 HTML 文件中。所以这很容易,我在上面做了你 见。
那么,有什么问题吗?之后,我还应该像这样显示负值:在 html 文件中的另一个 <p id="negative"> 中。 (-21,-9,-50,-3)。
当我对我的 innerHTML 使用 getElementById 方法时,什么都不会出现,但有时当我稍微修改一下时,会显示最后一个负值(仅 -3)。当我评论它并取消评论 document.write() 方法时,所有负数都会显示出来。为什么我用第一种方法会遇到这样的问题?以及如何修复我的代码并最终使用 getElementById?
// 谢谢
【问题讨论】:
-
而不是
innerHTML=(pinakasPinakas[i]);做innerHTML+=(pinakasPinakas[i]);您正在将最后一个值分配给innerHTML。相反,您将不得不连接该值。另一种方法是使用功能方法。将数组拆分为 +ve 和 -ve 值数组。这将减少不必要的迭代和检查。然后做.innerHTML = negativeValues.join()
标签: javascript html arrays innerhtml getelementbyid