如何解决在 HTML 集合中循环不能正确循环
我试图将我的 HTML 集合循环为
const nodeItems = document.getElementsByClassName('image-inside')
我试着像循环一样
for(let node of nodeItems) {
console.log('im node ',node)
console.log('im node url',node.src)
return writer.createAttributeElement( 'img',{
src: node.src,style: `width:${node.style.width};
height:${node.style.height};`,class: 'image-inside'
},{ priority: 7 } )
}
但只有第一个节点被记录了两次,而不是第二个。 有什么想法吗?任何帮助将不胜感激。感谢阅读
更新:所以我试图转换为数组。没关系,日志记录很好。但是它的原型是数组,我应该返回的是 Nn (由于 writer.createAttributeElement() )。我什至不认为我能做到这一点
UPDATE2:所以目前数组已正确加载 但是当通过 editor.getData() 从 ckeditor5 获取数据时 它仍然采用最后一个元素
还是非常感谢大家的阅读
解决方法
您正在使用 *r
stmt 打破循环。
查看另一个答案 https://stackoverflow.com/a/11714515/1205171
,编辑:使用 EmptyElement,因为如果您扩展 Element 类,这就是您最终创建的内容
如评论中所述,您应该删除 return
语句。
也许可以先将其转换为数组,然后像这样重新映射数组:
let nodeItems = Array.from(document.getElementsByClassName('image-inside'));
nodeItems = nodeItems.map(function(node) {
console.log('im node ',node)
console.log('im node url',node.src)
// Instead of creating your own element from Element (i.e. Nn),why not use Empty Element class instead. It will be what you create anyways I'm guessing
return writer.createEmptyElement( 'img',{
src: node.src,style: `width:${node.style.width};
height:${node.style.height};`,class: 'image-inside'
},{ priority: 7 } )
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。