我使用CKeditor作为富文本编辑器。我已经动态生成了textareas,其中包含需要替换文本编辑器的唯一ID。这工作正常,但我需要在textarea上调用getData();来获取AJAX调用的数据。这很容易:
var editor_data = CKEDITOR.instances.editor1.getData();
问题是我需要editor1是动态的,具体取决于按钮上属性的值。我将textarea的标识符记录在兄弟按钮的name属性中:
var INSTANCE_NAME = $(this).attr('name');
记录下来我得到了正确的编辑ID。 (请注意,仅使用CAPS突出显示下一个代码块中需要使用的位置。)
我现在需要将INSTANCE_NAME
用作变量,如下所示:
var editor_data = CKEDITOR.instances.INSTANCE_NAME.getData();
我想我的整个代码需要看起来像这样:
var INSTANCE_NAME = $(this).attr('name');
var editor_data = CKEDITOR.instances.INSTANCE_NAME.getData();
但我只是得到CKEDITOR.instances.INSTANCE_NAME
未定义的错误(实际上这并不奇怪)
由于
答案 0 :(得分:2)
有两种方法可以访问对象中的属性:
object.property
object['property']
因为第二个选项将属性名称作为字符串,所以您可以动态构建它 - 在这种情况下,使用字符串INSTANCE_NAME
:
var INSTANCE_NAME = $(this).attr('name');
var editor_data = CKEDITOR.instances[INSTANCE_NAME].getData();
// \_____________/
// ^
答案 1 :(得分:1)
使用方括号:
var editor_data = CKEDITOR.instances[INSTANCE_NAME].getData();