javascript - 按类过滤 jQuery 对象并且没有标签
问题描述
使用以下代码:
// Get the highlighted content
let $content = $(editor.selection.getContent());
我得到了目前在 TinyMCE 中突出显示的内容。当我在控制台窗口中打印出 的值时$content
,我得到以下信息:
$content
jQuery.fn.init(5)
0: span.element.text-element
1: text
2: span.element.text-element
3: text
4: span.element.text-element
length: 5
我要做的是验证所有对象是类型.text-element
还是文本。所以我正在执行以下操作$content.filter('.text-element').length
并将其与$content.length
. 如果它们相等,我的对象是好的。但当然,只是过滤'.text-element'
只会给我 3 个元素。
我也试过$content.filter('.text-element,:not([class]').length
哪个不起作用。
如何在'.text-element'
没有类的情况下返回所有 s & 元素?
我将添加一个 TinyMCE 标签。
解决方案
您可以通过将函数传递给filter()
. 该函数可以检查元素是否存在,或者检查元素的nodeType:
let $filtered = $foo.filter((i, el) => el.classList.contains('text-element') || el.nodeType == Node.TEXT_NODE);
推荐阅读
- jquery - 如何动态更改 Bootstrap 弹出框位置?
- c# - C#循环浏览图像列表并在图片框中显示一张图像
- windows - 使用 CHEF 在 Windows 上安装 tomcat
- python - 在python的父类函数中使用子类的类级属性
- keras - 如何使用 keras 从训练有素的 mnist 模型中进行预测?
- react-native - 根据 React-Native 中另一个选择器所做的选择重新渲染选择器项目?
- javascript - 为什么我的切换类不能在 Firefox 响应式设计模式下工作?
- javascript - 动态表行在表内溢出
- mongodb - 如何在 PyMongo 中的聚合函数上使用 count()
- c# - 为什么两个可序列化对象不在设置中序列化?