我正在尝试创建一个Chrome扩展程序,该扩展程序将从表中提取一些数据。我想用每行以竖线|
字符分隔的简单行来变换TR的TD,例如:
01/01/2020 | XX | 57,43 | | 02/01/2020 | YY | 11,22 | |
这是其中的一部分:
<table width="100%" border="0" cellpadding="2" cellspacing="0"> <tbody> <tr> <td class="TRNbarratabelac" width="3%"> <input type="checkbox" name="chkTodos" id="chkTodos" onclick="selTodos(this)" style="background:transparent;border:0px;"></td> <td class="TRNbarratabelac">Data do <br>pagamento</td> <td class="TRNbarratabelac">Tipo</td> <td class="TRNbarratabelac">Favorecido/beneficiário</td> <td class="TRNbarratabelac">Valor (R$)</td> <td class="TRNbarratabelac">Informações complementares</td> <td class="TRNbarratabelac" colspan="2" width="20%">Opções</td> </tr> <tr> <td class="TRNlicbe"><input type="checkbox" name="chkSel" id="chkSel" value="1" onclick="verSelTodos(this)" style="background:transparent;border:0px;"></td> <td class="TRNlicbe">21/02/2020 </td> <td class="TRNliebe">Concessionárias</td> <td class="TRNliebe"> </td> <td class="TRNlidbe">57,43 </td> <td class="TRNlicbe"> </td> <td class="TRNlicbde" width="8%"><a href="javascript:detalharIndividual('1')" class="lnkpadrao01">Visualizar</a></td> <td class="TRNlicbde" width="12%"><span><a href="javascript:email('1')" class="lnkpadrao01">enviar por email</a></span> </td> </tr> </tbody> </table>
要对其进行迭代,我使用XPath是这样的:
function DOMtoString(doc) { let path_tr = '(//div[@class="contborda"])[4]/table[3]/tbody/tr[position()>1]'; var tr = doc.evaluate(path_tr, doc, null, XPathResult.ANY_TYPE, null); let alertText = ''; let x = tr.iterateNext(); while (x) { alertText += x.textContent; x = tr.iterateNext(); } return alertText; }
这里我得到表(忽略第一个带有列名的TR),但结果是这个(只是其中的一部分):
<br> <br> 21/02/2020 <br> Concessionárias<br> <br> 57,43 <br> <br> Visualizar<br> enviar por email <br><br>
我看到XPath在上面添加了BR。
我尝试遍历这些TR的TD,但没有这样的成功:
let path_td = '//td'; var td = tr.evaluate(path_td, tr, null, XPathResult.ANY_TYPE, null);
我可以在TD上进行交互并获得没有BR的原始文本的正确方法是什么?
我正在尝试创建一个Chrome扩展程序,该扩展程序将从表中提取一些数据。我想用单行将TR的TD转换为简单的行,每列用竖线分隔。字符,例如:01/01 / ...
使用innerText
而不是textContent
以避免换行。您可以使用Document.querySelector()
代替XPath,这将使DOM操作更加容易。