我使用下面的代码获取单元格值。
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><a data-action="update-limit" data-filter="limit">1.18809 (505.4)<br>$808.64</a></td>
答案 0 :(得分:1)
按标记名称查找每个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>
答案 1 :(得分:0)
如果您可以在感兴趣的范围内添加唯一的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>
答案 2 :(得分:0)
您可以使用innerText代替InnerHTML
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)YOURWEBSITE.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|xml|php|png|css)$ - [F]
答案 3 :(得分:0)
您的代码似乎很复杂,只是为了获取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);