【发布时间】:2017-04-29 00:30:59
【问题描述】:
我有以下html:
<td>
<strong>CLERK SHALL ISSUE THE CERTIFICATE OF TITLE</strong>
<!-- DUE DATE & COMPLETED DATE -->
<div class="SmallNotes" hidden="hidden">
<i>Due Date: </i><br>
<i>Complete Date: </i><br>
</div>
<!-- PARTY NAME -->
<div class="SmallNotes" hidden="hidden">
<i></i><br>
</div>
</td>
我只想获取浏览器中可见的文本,在本例中为:
CLERK SHALL ISSUE THE CERTIFICATE OF TITLE
现在有时 div 没有隐藏属性,因此会在屏幕上可见。
我的直接解决方案是 innerText:
cells[6].innerText
> "CLERK SHALL ISSUE THE CERTIFICATE OF TITLE"
但是,我在一个 casperjs 脚本中运行它,有时它也会拾取 Due Date: 文本,这应该是隐藏的。因此,在 casperjs 中运行时,innerText 并不可靠。是否有另一种方法可以仅获取可见文本? jQuery text() 方法生成所有文本,包括隐藏文本。 innerHTML 生成 html 元素。 textContent() 的工作方式与 jQuery 的 text() 相同。另外,请注意,有时文本会直接出现在 td 标记中。
【问题讨论】:
标签: javascript