我正在为 ckeditor 写一个小插件,
在按钮触发时,我试图让编辑器抓取原始 html 数据以发送到服务器。 正确的语法是
CKEDITOR.instances.div_id.getData();
或者
CKEDITOR.instances[div_id].getData();
但是这是在获取一个名为 id 的集合,我希望它相对于它的父 id
var id = $(this).parent().attr("id");
var htmlcontent = CKEDITOR.instances.id.getData();
我意识到我不知道如何在不考虑它是属于 CKEDITOR 的函数的情况下插入一个 var。我应该知道这一点,但它就是不来找我。
有趣的是,这可能不是一个在职的 parent id-grabber
编辑: 解决 CKeditor 问题(在网上不容易找到) CKeditor 有一些内置的 API 来获取容器元素 ID。
这是 CKeditor 插件的有效 ID 抓取器,数据抓取语法由以下答案帮助构建:
var id = editor.container.getId();
var htmlcontent = CKEDITOR.instances[id].getData();
截至 2014 年 12 月 4 日
最佳答案
为什么 var htmlcontent = CKEDITOR.instances.id.getData();
不起作用?原因是 id
是一个变量,保存了先前存储在行中的确切 id
var id = $(this).parent().attr("id");
此 id
变量包含类似“myElementId”的内容。为了让您使用该字符串,您需要使用“括号表示法”(相关:Working with Objects MDN)访问实例对象,如果您事先没有明确知道“myElementId”的名称。
因此,这会起作用
var htmlcontent = CKEDITOR.instances[id].getData();
如果“myElementId”是先前存储的父元素的 ID,则类似于 CKEDITOR.instances.myElementId.getData()
。
关于javascript - 将 Javascript 变量放入其他变量的定义中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27304777/