我想迭代CKEDITOR中body标签内的所有元素。我这样想:
document.getBody().getChildren()
但是它会返回一些奇怪的集合,这是不可用于迭代的。有什么建议吗?
感谢。
答案 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()
返回的内容以及如何使用它。