变量作为javascript中的对象键

时间:2011-10-20 12:41:49

标签: javascript jquery ckeditor

  

可能重复:
  Use javascript variable in object name

我使用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未定义的错误(实际上这并不奇怪)

由于

2 个答案:

答案 0 :(得分:2)

有两种方法可以访问对象中的属性:

  1. object.property
  2. object['property']
  3. 因为第二个选项将属性名称作为字符串,所以您可以动态构建它 - 在这种情况下,使用字符串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();