views:

226

answers:

3

I am using CKEditor, and, when referring to the CKEditor instance, I need to use a variable. But, since calling the instance is a object, I am really not sure how to do this.

I am using:

CKEDITOR.instances.textarea123.insertHtml('<p>Whatever</p>');

The issue is, I need 123 to be a variable, because I need to change the instance based on the editor page that is loaded.

So, how can I use a variable in an object name?

For obvious reasons the following does not work, but I need to achieve what it is "pretending" to do:

var id = 354;
CKEDITOR.instances.textarea+id+.insertHtml('<p>Whatever</p>');
+1  A: 
var id = 354;
CKEDITOR.instances["textarea" + id].insertHtml('<p>Whatever</p>');

Since instances is an object, and objects essentially are hash tables you can access them with the array notation.

Tobias Baaz
+1  A: 

You can use array notation:

CKEDITOR.instances['textarea' + id].insertHtml('<p>Whatever</p>');
Greg
+1  A: 

Try the following:

var id = 354;
CKEDITOR.instances['textarea'+id].insertHtml('<p>Whatever</p>');
Stoo
You guys are awesome, thank you!
Nic Hubbard