CKEDITOR遍历正文中的所有元素

时间:2013-06-14 13:47:12

标签: javascript dom ckeditor iteration

我想迭代CKEDITOR中body标签内的所有元素。我这样想:

document.getBody().getChildren()

但是它会返回一些奇怪的集合,这是不可用于迭代的。有什么建议吗?

感谢。

1 个答案:

答案 0 :(得分:3)

要轻松迭代所有元素,您可以使用小技巧:

var elements = editor.document.getBody().getElementsByTag( '*' );

for ( var i = 0; i < elements.count(); ++i ) {
    console.log( elements.getItem( i ).getName() );
}

但请记住,elements是一个包装好的原生DOM live 集合。因此,在迭代过程中修改DOM基本上是有风险的,因为它可能会改变该集合。

顺便说一句。这不是一个“一些奇怪的集合”。你检查过docs了吗?所有这些都记录在案 - 从getChildren()返回的内容以及如何使用它。