Javascript 无法使用getElementByTagName从输入字段收集值
我在学校里学习JS,这个任务是一个家庭作业,它让我很痛苦 我需要创建一个输入字段和两个按钮。第一个按钮需要根据第一个输入值创建给定数量的输入元素,第二个按钮应该从新输入中获取所有值并求和 我根本无法从新的输入字段中获取值,一周内我无法从这一点开始移动,我读到的所有内容都没有帮助。这是我到目前为止编写的代码,请记住,我是一个完全的初学者,这项任务对我来说非常重要Javascript 无法使用getElementByTagName从输入字段收集值,javascript,arrays,getelementsbytagname,Javascript,Arrays,Getelementsbytagname,我在学校里学习JS,这个任务是一个家庭作业,它让我很痛苦 我需要创建一个输入字段和两个按钮。第一个按钮需要根据第一个输入值创建给定数量的输入元素,第二个按钮应该从新输入中获取所有值并求和 我根本无法从新的输入字段中获取值,一周内我无法从这一点开始移动,我读到的所有内容都没有帮助。这是我到目前为止编写的代码,请记住,我是一个完全的初学者,这项任务对我来说非常重要 函数myFunction(){ var i=document.getElementById(“input1”).value; 对于(v
函数myFunction(){
var i=document.getElementById(“input1”).value;
对于(var j=1;j更新myFunction2:
function myFunction2() {
var arr = document.getElementsByTagName("INPUT");
var sum = 0;
for (var i = 0; i < arr.length; i++) {
var ar = document.getElementsByTagName("INPUT")[i].value;
sum = sum + parseInt(ar);
}
document.getElementById("test").innerHTML = sum;
}
函数myFunction2(){
var arr=document.getElementsByTagName(“输入”);
var总和=0;
对于(变量i=0;i
您不再需要for循环。让我们声明变量sum并向其中添加值。
如果不想从第一个输入中添加值,请从1开始循环。仔细阅读这一行:
document.getElementsByTagName("INPUT").value`
它说“get elements”,所以有不止一个元素,但是你要求“value”,所以只有一个值;浏览器如何知道你想要哪个值
您已经运行了此函数,并将结果放入arr
,然后使用计数器i
在其上循环。因此,您希望从中获取值
然后重用该变量将数字放入;这是一个坏主意,如果选择更好的变量名,如listOfInputElements
和listOfValues
,您就不会有这种诱惑,因为document.getElementsByTagName(“输入”)需要向新创建的输入添加特定的类
返回带有#input1的集合
下面是一个代码:
<!DOCTYPE html>
<html>
<head>
<title>Sabiranje</title>
</head>
<body>
<p>Unesite izabrani broj clanova niza</p>
<input id="input1"></input><br>
<button onclick="myFunction()">dodaj</button>
<button onclick="myFunction2()">saberi</button><br>
<p id="test"></p>
<script>
function myFunction(){
var i = document.getElementById("input1").value;
for (var j=1; j<=i; j++){
var inp = document.createElement("INPUT");
inp.className = 'new-inp';
document.body.appendChild(inp);
}
}
function myFunction2(){
var arr = document.getElementsByClassName("new-inp");
var sum = 0;
for (var i = 0; i < arr.length; i++){
sum += parseFloat(arr[i].value);
}
document.getElementById("test").innerHTML = sum;
}
</script>
</body>
</html>
萨比兰杰
乌内斯特·伊扎布拉尼·布罗伊·克兰诺娃·尼扎
多达伊
萨贝里
函数myFunction(){
var i=document.getElementById(“input1”).value;
对于(var j=1;j我修复了您的代码,但它可以编写得更好
您在myFunction2()
中遇到了一些逻辑问题。要将所有输入值相加以不包括#input1,请小心。我在生成的输入上添加了类生成的输入
,以便可以单独提取它们
函数myFunction(){
var i=document.getElementById(“input1”).value;
对于(var j=1;j),我使用了这个函数,而不是原始的,脚本工作正常,需要做一些小的美学修复,并将发送家庭作业。谢谢lot@Draza你说的“审美修正”是指“改变,让老师不那么容易发现我作弊了”吗?您仍然面临任何问题吗?@GiteshPurbia-没有问题,所有问题都与您的修复程序一起工作,thanks@IMSoP-不,我在HTML中添加了一些和样式以使其看起来更好