将Javascript变量放在另一个变量的定义中

时间:2014-12-04 21:50:12

标签: javascript jquery html ckeditor

我正在为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();

我意识到我不知道如何插入一个var而不考虑它是一个属于CKEDITOR的功能。我应该知道这一点,但它并没有找到我。

有趣的是,这可能不是一个有效的父母id-grabber

编辑:解决CKeditor问题(在网上不容易找到) CKeditor有一些内置的API来获取容器元素id。

这是CKeditor插件的工作ID抓取工具,数据抓取语法由以下答案构成:

var id = editor.container.getId();
var htmlcontent = CKEDITOR.instances[id].getData();

截至2014年4月4日

2 个答案:

答案 0 :(得分:3)

为什么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"并且类似于CKEDITOR.instances.myElementId.getData()是先前存储的父元素的id。

答案 1 :(得分:0)

如果您已有editor个对象,则根本不需要使用CKEDITOR.instances,只需使用

editor.getData();