我有一个html表。每个表行包含几个输入文本区域,每个输入文本区域都有动态分配的唯一ID。现在我想将表格第一列的所有id放入一个数组中。我在这件事上面临问题。请帮帮我。
我的表的Html代码如下:
<table id="POITable">
<tr>
<th>Item</th>
<th>Brand</th>
<th>UOM</th>
<th>Quantity</th>
<th>Remarks</th>
</tr>
<tr style="visibility:hidden;"> <!-- This is just a dummy row-->
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
<tr>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><input size=25 type="text"/></td>
<td><img alt="Icon" src="/assets/add-icon.png" id="addmorePOIbutton" onclick="insRow()" /></td>
<td><img alt="Icon" src="/assets/minus-icon.png" id="delPOIbutton" onclick="deleteRow(this)"/></td>
</tr>
</table>
现在我输入文本框的ID的javascript代码是:
function make_summary()
{
var arr=new Array();
var x=document.getElementById('POITable');
var size=x.rows.length;
for (i=2;i<=x.rows.length-1;i++)
{
var each_row=x.rows[i];
var each_col=each_row.cells[1];
console.log(each_col);
}
}
我可以访问每个表数据,我的意思是td标记,但是因为每个td标记内都有<input>
标记,所以如何访问该输入标记元素?
each_col.getElementByTagName();
无效。这是投掷错误。
请给我一些解决方案。请给我一些javascript解决方案(请不要jquery)。
答案 0 :(得分:2)
由于td
标记中始终只有一个元素,因此您只需使用
each_col.getElementsByTagName('input')[0];
请记住,getElementsByTagName()
返回一个HtmlCollection,而不是单个元素 - 因此您必须指定要定位的元素。
BTW ......没有一种叫做getElementByTagName()
的方法 - 这可能是混乱的来源。它是复数元素 - &gt;元素
getElementsByTagName()
^