2011-10-20 31 views
1

可能重複對象鍵:
Use javascript variable in object name變量在JavaScript

我使用CKeditor爲富文本編輯器。我已經動態生成了textareas,並帶有需要用文本編輯器替換的唯一ID。這工作正常,但我需要在textarea上調用getData();來獲取AJAX調用的數據。這很容易:

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

問題是我需要editor1是動態的,取決於按鈕上的屬性值。我在兄弟按鈕的name屬性中記錄了textarea的標識符:

var INSTANCE_NAME = $(this).attr('name'); 

記錄下來,我得到正確的編輯器ID。 (注僅使用大寫來突出它需要在接下來的代碼塊中使用。)

我現在需要使用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

有兩種方法在一個對象來訪問屬性:

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

因爲第二個選項獲取財產名稱作爲一個字符串,你可以建立它的動態盟友—使用字符串INSTANCE_NAME

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

使用方括號:

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