- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 slate.js 制作一个所见即所得的编辑器我正处于尝试找到第一个带有文本的节点的情况。
下图显示了我在说什么:
在我的图片中,我想找到包含“this is my title.”的节点,即使它之前有几行空行也是如此。
基本上,如果我在编辑器中写了一堆文本,我如何找到第一个不是空字符串的文本?
查看文档,我找到了 filterDescendants和 findDescendants 函数,它们似乎可以满足我的需求。
但是,我不清楚如何使用它们。
我试过这样的:
this.state.state.startBlock.findDescendant((d) => d.text !== "")
但这只会返回 null
文档说 findDescendant
将“通过迭代器深入查找后代节点”,其中 iterator
是一个函数,但是没有提供任何类型的函数的示例会经过这里。
有没有人有任何想法或例子?
最佳答案
这里是 Slate.js 作者。
你会喜欢做这样的事情:
state.document.getBlocks().find(block => block.text != '')
这将搜索文档中的叶 block 节点(在本例中为您的段落、标题等)并找到第一个不为空的节点。
Slate 数据模型是用 Immutable.js 构建的,因此阅读该库的工作原理对使用 Slate 非常有帮助。在这种情况下,getBlocks()
返回一个不可变的 List
。 ,它有一个 find
方法。
希望对您有所帮助!
关于javascript - filterDescendants 和 findDescendant 与 slate.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43814287/
我正在使用 slate.js 制作一个所见即所得的编辑器我正处于尝试找到第一个带有文本的节点的情况。 下图显示了我在说什么: Slate.js find first text pic 在我的图片中,我
我是一名优秀的程序员,十分优秀!