首页 > 解决方案 > 按类过滤 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 标签。

标签: javascriptjquerytinymce-4

解决方案


您可以通过将函数传递给filter(). 该函数可以检查元素是否存在,或者检查元素的nodeType:

let $filtered = $foo.filter((i, el) => el.classList.contains('text-element') || el.nodeType == Node.TEXT_NODE);

推荐阅读