[英]How do I get data inside table / td
我使用下面的代码获取单元格值。
alert(document.getElementById("table-body-positions").rows[0].cells[3].innerHTML);
Td值为
<td><a data-action="details"><span><span class="">2019/01/04 13:36:19</span></span></a></td>
我得到结果。
<a data-action="details"><span><span class="">2019/01/04 13:36:19</span></span></a>
但我只想得到2019/01/04 13:36:19
这个TD在这里同样的问题。
<td><a data-action="update-limit" data-filter="limit">1.18809 (505.4)<br>$808.64</a></td>
通过标记名称查找每个td
,然后递归检查其内容,直到找到nodeType
TEXT_NODE
。
如果您的tds中没有固定的HTML结构,这将是最好的选择。
没有ID,也不需要任何类。
function recursiveSearch(elem){ if(elem.nodeType === Node.TEXT_NODE){ //text was discovered return elem.data.replace("\\n", "").trim(); } const nodes = elem.childNodes; return Object.keys(nodes).map(key=>recursiveSearch(nodes[key])).join(""); } const tds = document.getElementsByTagName('td'); const res = Object.keys(tds).map(key=>{ const td = tds[key]; return recursiveSearch(td); }); console.log(res);
<table> <td> <a data-action="details"> <span> <span class="">2019/01/04 13:36:19</span> </span> </a> </td> <td> <a data-action="update-limit" data-filter="limit"> 1.18809 (505.4)<br>$808.64 </a> </td> </table>
如果您可以在感兴趣的范围内添加唯一的ID或类名,则会更容易。
使用innerText而不是innerHTML。
console.log(document.getElementsByTagName('td')[0].getElementsByTagName('span')[1].innerText)
<table> <td><a data-action="details"><span><span class="">2019/01/04 13:36:19</span></span></a></td> </table>
可以使用innerText代替InnerHTML
alert(document.getElementById("table-body-positions").rows[0].cells[1].innerText);
您的代码似乎过于复杂,只是为了获取innerHTML警报。 这是我的解决方案。 Codepen
HTML
<table id = "table-body-positions">
<tr>
<td><a data-action="details"><span><span id = "details">2019/01/04 13:36:19</span></span></a></td>
<td><a data-action="update-limit" data-filter="limit"><span id = "limit">1.18809 (505.4)<br>$808.64</span></a></td>
</tr>
</table>
JS
let details = document.getElementById("details").innerHTML;
let limit = document.getElementById("limit").innerText;
alert(details);
alert(limit);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.