繁体   English   中英

我如何在表/ TD内获取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM