【问题标题】:variable as object key in javascript [duplicate]变量作为javascript中的对象键[重复]
【发布时间】:2011-12-11 18:32:50
【问题描述】:

可能重复:
Use javascript variable in object name

我使用CKeditor 作为富文本编辑器。我已经动态生成了具有唯一 ID 的文本区域,需要用文本编辑器替换。这工作正常,但我需要在 textarea 上调用 getData(); 以获取 AJAX 调用的数据。这很容易:

var editor_data = CKEDITOR.instances.editor1.getData();

问题是我需要 editor1 是动态的,这取决于按钮上的属性值。我将文本区域的标识符记录在兄弟按钮的名称属性中:

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 未定义(这并不奇怪)

谢谢

【问题讨论】:

    标签: javascript jquery ckeditor


    【解决方案1】:

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

    1. object.property
    2. object['property']

    因为第二个选项将属性名称作为字符串,您可以动态构建它——在本例中,使用字符串INSTANCE_NAME

    var INSTANCE_NAME = $(this).attr('name');
    var editor_data = CKEDITOR.instances[INSTANCE_NAME].getData();
    //                                  \_____________/
    //                                         ^
    

    【讨论】:

      【解决方案2】:

      使用方括号:

      var editor_data = CKEDITOR.instances[INSTANCE_NAME].getData();
      

      【讨论】:

        猜你喜欢
        • 2012-09-21
        • 2011-08-29
        • 2019-07-16
        • 1970-01-01
        • 2020-02-18
        • 1970-01-01
        • 2012-07-15
        • 2015-08-30
        • 1970-01-01
        相关资源
        最近更新 更多