【发布时间】:2022-09-28 17:22:28
【问题描述】:
我的设置如下。
它正在工作,我只是有一个小问题。目前它正在检查文本的子注释(node.nodeType === 3)。问题是,有时有 f.e.链接或段落中的文本很强大,它们也被删除了。
基本上我想做的是:定位(计数)段落中不是休息的所有内容。或者换句话说是这样的: if(node.nodeType !== br)
一个例子看起来像这样:
<p>
\"Text\"
<br>
<br>
<strong>
\"Text2\"
目前,该脚本将查看两个文本之间的 3 个元素,并从 Text2 中删除强元素,但这不是我想要的。它应该只计算段落而不是其他任何东西。
有人可以帮帮我吗?
const mediaQuery = window.matchMedia(\'(max-width: 468px)\')
// Check if the media query is true
if (mediaQuery.matches) {
const paragraphs = document.querySelectorAll(\"p\");
paragraphs.forEach( elem => {
const nodes = [...elem.childNodes];
nodes.reduce((count, node) => {
if(node.nodeType === 3) {
const isEmpty = node.nodeValue.trim().length === 0;
return isEmpty ? count : 0;
}
count++;
if (count>2) node.remove();
return count;
}, 0);
});
}
-
您能否在您的问题中添加一个输入示例和一个输出示例?
-
好吧,如果您想测试
<br>元素,为什么不这样做呢?node.nodeName != \'BR\' -
如果对返回值不做任何事情,为什么还要使用
reduce? -
@Djave 我在描述中添加了一个示例
-
我们在数什么?字符数或数字或换行符?
标签: javascript nodes line-breaks