CKEditor 5通过Attibute查找模型元素

时间:2018-12-07 07:21:03

标签: ckeditor ckeditor5

编辑器中存在一个自定义html dom元素:

<content id="1">
 <p>Paragraf is here and <a href="/url/to">link text</a> exists</p>
</content>

我想使用模型的属性在模型中找到它。我可以使用从根开始的递归方法找到它。但是有没有更简单的方法,例如querySelectorAll?

1 个答案:

答案 0 :(得分:0)

我还没有找到可以执行此操作的现成的帮助程序方法,但是如果有人只是在寻找可以使用的函数定义,请尝试以下方法:

function findDescendant (modelElement, predicate) {
  if (predicate(modelElement)) {
    return modelElement
  }
  if (modelElement.getChildren) {
    for (let child of modelElement.getChildren()) {
      const found = findDescendantByName(child, name)
      if (found) {
        return found
      }
    }
  }
}

...
...

const descendant = findDescendant(element, (element) => element.hasAttribute('foobar'))