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

时间:2019-01-04 16:52:29

标签: javascript

我使用下面的代码获取单元格值。

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>

4 个答案:

答案 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);