我想在javascript中访问放置在动态表行内的文本。
我的表结构: -
<BODY>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<TABLE id="dataTable" width="650px" border="2">
<TR >
<TD><INPUT type="checkbox" name="chk[]" /></TD>
<TD ><INPUT type="text" name="txt[]" /></TD>
<TD>
<INPUT type="text" name="time[]" />
</TD>
</TR>
</TABLE>
</BR>
</BR>
<INPUT type = "button" value = "Submit" onclick = "myFunction()"></BODY>
- 感谢
答案 0 :(得分:0)
你有指定行的id吗?如果你没有想要更改文本的行上的地方ID,并用javascript“捕获”它。函数名为var a = document.getElementById('ID_OF_SAMPLE_ROW')。值和文本存储在变量a中。必须在单击或类似的东西上调用此函数,因此您必须指定何时读取以及从哪一行开始。
答案 1 :(得分:0)
如果你想在表格中获得整个输入值,你可以这样做。
var a = document.getElementById("dataTable").getElementsByTagName("input");
所以var a
变成了一个数组,里面是你想要获取值的元素,只需使用循环。
var e = a.length; // get how many input inside the table
for(x=0;x<e;x++){
console.log(a[x].name+" the value inside is "+a[x].value);
}
答案 2 :(得分:0)
只需使用 .getElementsByName()
抓取相关元素,然后返回.value
。您可以使用.checked
查看是否选中了复选框。
请注意,.getElementsByName()
会返回 NodeList 对象集合,因此您需要使用[0]
获取第一个结果。
这可以在以下内容中看到:
function myFunction() {
let chk = document.getElementsByName('chk[]')[0].checked;
let txt = document.getElementsByName('txt[]')[0].value;
let time = document.getElementsByName('time[]')[0].value;
console.log("Checkbox checked?:", chk);
console.log("Text:", txt);
console.log("Time:", time);
}
<BODY>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
<TABLE id="dataTable" width="650px" border="2">
<TR>
<TD>
<INPUT type="checkbox" name="chk[]" />
</TD>
<TD>
<INPUT type="text" name="txt[]" />
</TD>
<TD>
<INPUT type="text" name="time[]" />
</TD>
</TR>
</TABLE>
<BR />
<BR />
<INPUT type="button" value="Submit" onclick="myFunction()" />
</BODY>
请注意,您的最终<input>
错过了结束/
,而您的</br>
代码应为<br />
。这些已在上面的例子中修复。