javascript - 如何获取 HTML 文档特定部分(范围、片段)的 innerText?(即不是整个 HTML 元素)
问题描述
#div2{
text-transform:uppercase
}
#invisible{
display:none
}
<div id='container'>
<div id='div1'>
<span>some text</span>
<div>
<span>some text</span>
<div id='div2'>text2</div>
</div>
</div>
<div id='invisible'>invisible text</div>
<div id='div3'>text3</div>
</div>
假设我想从 div2 到 div3 获取文档的一部分的 innerText ,所以我应该得到以下文本值:
TEXT2
text3
我怎样才能得到那个值?
我可以通过Range对象选择 HTML 文档的某些部分,但 Range 对象没有 innerText 属性。(我说的是 innerText,而不是 textContent,因为我希望提取的文本看起来与浏览器中呈现的版本相同,即尊重 CSS 属性,如、display
、visibility
等)white-space
text-transform
解决方案
如果你想要内部文本,你可以使用 jQuery:
var div1 = $("#div1");
var div1Content = (div1.length === 0) ? "div1 was not found or some relevant error message" : div1.text();
// or if you are confident your div1 will exist:
var div1Content = $("#div1").text();
或者,JavaScript:
var div1Content = document.getElementById("div1")?.innerText ?? "div1 was not found or some relevant error message";
推荐阅读
- r - 与训练相比,R RF 不平衡类在未见数据上的负预测值较低
- php - Paypal 从 php-curl 获取访问令牌错误请求,但从终端正常工作
- angular - ng 测试在 firefox 浏览器中出现错误
- ios - 在 iOS 12 中使用 PDFKit 时如何处理因内存泄漏导致的崩溃?
- c# - System.Net.Http.HttpClient 不尊重超时并使用每次默认值
- android - NotificationManagerCompat 更新启用的侦听器包的时间过长
- android - AccountManager.newChooseAccountIntent 不要求创建帐户
- php - 带有参数 $1 和 $2 的 .htaccess 重定向以形成 URL
- http - 即使禁用缓存,Safari 也会缓存 GET 请求
- javascript - 将base64字符串转换为字节数组