我的JavaScript函数无法正常工作。该函数应遍历input
框并显示包含input
值的提醒。出于某种原因,input
都返回undefined
。我确信input
元素的id是正确的。我可以对输入执行其他操作(更改颜色,设置.innerHTML
),但我似乎无法收集值。有人可以指出我可能做错了吗?
function submitHours(){
var table = document.getElementById('StudentList');
var tbody = table.getElementsByTagName('tbody')[0];
var rows = tbody.getElementsByTagName("tr");
for (var r = 1; r < rows.length+1; r++) {
for(x=1; x<=25; x++){
document.getElementById(r+'day'+x).style.backgroundColor = 'red';
alert(document.getElementById(r+'day'+x).value);
}
}
}
答案 0 :(得分:1)
您需要使用innerText
代替value
:
for(x=1; x<=25; x++){
document.getElementById(r+'day'+x).style.backgroundColor = 'red';
alert(document.getElementById(r+'day'+x).innerText);
}
答案 1 :(得分:1)
您似乎正在选择包含您要定位的input
元素,而不是input
本身。这就是为什么您可以设置.innerHTML
,但不能设置.value
。
要获取该值,请执行以下操作:
function submitHours(){
var rows = document.querySelector('#StudentList > tbody:first-child > tr');
for (var r = 1; r < rows.length+1; r++) {
for(var x=1; x<=25; x++){
var input = document.querySelector('#' + r+'day'+x + " input");
input.style.backgroundColor = 'red';
alert(input.value);
}
}
}
这可能是一种更有效的方法,但是如果没有看到你的标记,我就无法分辨。