gpt4 book ai didi

javascript - 检索 .textContent 包括伪元素

转载 作者:行者123 更新时间:2023-11-28 10:36:52 27 4
gpt4 key购买 nike

给定

<div><span>first</span><span>second</span></div>

span + span::before {
content: ', ';
}

我想在 JavaScript 中检索渲染的字符串 'first, secondary'.textContent 会忽略伪元素的内容,因为它不是DOM。有没有办法获取实际渲染的文本?

示例:https://jsfiddle.net/silverwind/nyr5kohj/2/

最佳答案

使用getCompulatedStyle让它工作。它不支持 ::after 但这应该不难添加。

let text = '';
for (const child of children(document.querySelector('div'))) {
if (child.nodeType === 1) {
const before = window.getComputedStyle(child, '::before').getPropertyValue('content');
if (before && before !== 'none') {
text += before.replace(/^['"]/, '').replace(/['"]$/, '');
}
} else if (child.nodeType === 3) {
text += child.textContent;
}
}

alert(text);

function children(node) {
const ret = [];
for (let i = 0; i < node.childNodes.length; i++) {
const child = node.childNodes[i];
ret.push(child, ...children(child));
}
return ret;
}

关于javascript - 检索 .textContent 包括伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60258551/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com