【发布时间】:2020-01-24 13:16:39
【问题描述】:
我需要从一个用 css 隐藏的 html 元素中获取文本。我知道根据规范 innerText 将遵守 css 规则。但是使用 textContent 的替代方法会忽略我需要保留在字符串中的换行符和制表符。
有没有办法解决这个问题?
为简单起见,请参见以下示例:
const inntxt = document.querySelector('.expandable').innerText
console.log(inntxt) // Here we don't get the hidden div's text.
const txtct = document.querySelector('.expandable').textContent
console.log(txtct) // Here the result removes the line break.
.hidden{
display: none;
}
<div class='expandable'>
<span class='visib'>
Red balloon
</span>
<br>
<span class='hidden'>
Yellow badge<br>Green ribbon
</span>
</div>
我想解决它的一种方法是将<br> 替换为我自己的字符,例如#,通过附加它而不是<br>,但一定有更好的方法不是吗?
更新
为了更清楚,最终结果应该是:
例如,如果您要 console.log() 节点中的字符串,那么来自我们的 innerText 或 textContent 的字符串应该是: '红色气球\n黄色徽章\n绿色丝带'
【问题讨论】:
-
简而言之,你想要得到的最终结果是什么?
-
使用
.innerHTML怎么样?您可以这样做并将<br>替换为\n -
@GMaiolo 你能提供一个例子吗
-
@S.Schenk 添加了一个带有 sn-p 的答案,如果有帮助请告诉我
标签: javascript html