html - 如何在未包含在任何 HTML 标记内的 div 中获取文本副本?
问题描述
我正在尝试获取 div 容器中的文本并根据文本内容执行一些逻辑,而不是更改它。我尝试使用Node.childNodes
,但它返回一个实时节点列表而不是副本。
这是 DOM 结构,我只想从中获取text without a container
。
<div class="container" >
<span >text inside span</span>
text without a container
<button>text inside button new</button>
<button>text inside button</button>
</div>
有任何想法吗?
编辑:
期望的输出:
'没有容器的文本' 作为字符串
解决方案
你可以使用这个:
const parent = document.getElementById('parent');
const nodes = parent.childNodes;
let text = "";
for (let node of nodes) {
if (node.nodeName === '#text') {
text += node.textContent.trim();
}
}
console.log('Final result: ', text);
<div id="parent">
<span>Inside span</span>
I'm free! as a bird!
<span>I wish I was</span>
</div>
这将遍历所有子节点,并且只会提取不在另一个元素中的文本。
推荐阅读
- jmeter - 响应代码 400,503 有什么影响?如果我的主要关注点是测量 Web 应用程序的加载时间,我们可以忽略这些代码吗?
- python - 使用 pandas to_datetime 版本 0.23.4 获取今天的日期
- ssas - 是否可以从事实表中获取忽略子级值的层次结构父级成员的度量值?
- facebook - 我在哪里知道为什么在 Facebook 上限制我们的应用程序?
- java - 用空格分隔的 9 个唯一数字的正则表达式?
- database - 具有并发读写的一致性数据库
- c++ - 我如何创建服务?
- nginx - How can I check if file exists in nginx? otherwise run a rewrite rule
- javascript - 操纵代码授权问题 - ReactJS
- c# - C# Unity - 在 HUD 上保持游戏对象的大小改变 Z 深度