Javascript 当对象的标签也是动态的时,返回绑定到动态元素的对象

Javascript 当对象的标签也是动态的时,返回绑定到动态元素的对象,javascript,jquery,ckeditor,Javascript,Jquery,Ckeditor,我正在使用CKEditor。在我的页面中,用户可以动态添加/删除包含WYSIWYG ckeditor文本编辑器的元素 CKEDITOR.instances返回一个对象,其中包含我的页面上的所有ck_编辑器对象 当用户单击add按钮时,以下代码将成功捕获该元素: CKEDITOR.instances[“my_textarea_0_body"] 问题是当用户单击delete删除该元素,然后重新单击add。现在我想在页面上获取新的ckeditor元素。然而,现在我需要抓住这个: CKEDITOR.i

我正在使用CKEditor。在我的页面中,用户可以动态添加/删除包含WYSIWYG ckeditor文本编辑器的元素

CKEDITOR.instances
返回一个对象,其中包含我的页面上的所有ck_编辑器对象

当用户单击
add
按钮时,以下代码将成功捕获该元素:

CKEDITOR.instances[“my_textarea_0_body"]
问题是当用户单击
delete
删除该元素,然后重新单击
add
。现在我想在页面上获取新的ckeditor元素。然而,现在我需要抓住这个:

CKEDITOR.instances[“my_textarea_1_body"]
请注意,数字已更改。因此,用户可以多次切换该元素的添加/删除。示例:如果他们这样做了100次,我需要有一种方法像这样抓住那个物体:

CKEDITOR.instances[“my_textarea_100_body"]
问题是我永远不知道这个数字会是多少。这个数字对于我创建字符串以抓取适当的对象至关重要


问题:如何获取
CKEDITOR.instances
对象中包含的动态标记对象?我知道我想要的对象将始终是附加在
CKEDITOR.instances
对象中的最后一个对象。

我假设
CKEDITOR.instances
是一种映射(字典),因此您可以通过。然后选择最后一个/第一个/或第n个实例名称

var mapping_length = Object.keys(CKEDITOR.instances).length;
var object_label   = Object.keys(CKEDITOR.instances)[mapping_length - 1];
CKEDITOR.instances[object_label];

这将从该dictionary对象中返回所需的对象。

我假设
CKEDITOR.instancess
是一种映射(dictionary),因此您可以通过以下方式获取所有键名。然后选择最后一个/第一个/或第n个实例名称

var mapping_length = Object.keys(CKEDITOR.instances).length;
var object_label   = Object.keys(CKEDITOR.instances)[mapping_length - 1];
CKEDITOR.instances[object_label];

这将从该dictionary对象中返回所需的对象。

您可以创建一个helper函数来检查正则表达式匹配。该字段的正则表达式应为:

my_textarea_\d+_body

然后,您可以修改/添加新的对象键到实例中

您可以创建一个helper函数来检查正则表达式匹配。该字段的正则表达式应为:

my_textarea_\d+_body

然后您可以修改/添加新的对象键到实例中

Regex确实是您的朋友<代码>/^CKEDITOR\.实例\[“我的文本区域\ud+\uBody”\]$/。测试(str)应该可以完成此任务。(如果您复制并粘贴任何要测试的初始示例,它将失败,因为您在其中有一个倾斜的引用非法字符)


console.log(/^CKEDITOR\.instances\[“my\u textarea\uD+\u body”\]$/.test('CKEDITOR.instances[“my\u textarea\u 0\u body”])
Regex确实是您的朋友<代码>/^CKEDITOR\.实例\[“我的文本区域\ud+\uBody”\]$/。测试(str)应该可以完成此任务。(如果您复制并粘贴任何要测试的初始示例,它将失败,因为您在其中有一个倾斜的引用非法字符)


console.log(/^CKEDITOR\.instances\[“my\u textarea\uD+\u body”\]$/.test('CKEDITOR.instances[“my\u textarea\u 0\u body”])
问题是我不知道索引是什么。因为它是动态的:用户可以删除然后添加1次、20次、100次。我想匹配所有这些案例。你帮了我很大的忙!你是对的:
Object.keys(CKEDITOR.instances)
起作用。有了它,我就可以抓到最后一个,那就是我想要的。(我意识到,当对象被删除/重新添加到页面时,它只是在该列表中添加了一个新对象。我想给你点面子。如果你不介意更新你的答案,那么我会将你的答案标记为已接受的答案。问题是,我不知道索引是什么。因为它是动态的:用户可能会删除然后添加1个对象。)输入法,20次,100次。我想匹配所有这些情况。你帮了我很大的忙!你说得对:
Object.keys(CKEDITOR.instances)
起作用。这样,我就可以抓到最后一个,这是我想要的。(我意识到,当对象被删除/重新添加到页面时,它只是在列表中添加了一个新对象。我想给你一点信任。如果你不介意更新你的答案,那么我会将你的答案标记为已接受的答案。我大约95%确定你有一个-ie,你试图解决的问题是错误的。@Jamiec我完全同意这一点可能是问题。有什么建议吗?请描述您试图解决的问题,而不是您认为您应该如何解决它。直接从我链接中的投票结果中选择
,为避免落入此陷阱,请始终在尝试解决方案的同时提供更广泛的信息。
@Jamiec我如何提供尝试解决方案当我不知道如何着手解决它时?特别是如果问题是我对问题的思考方式不正确的话?我希望人们能在这方面帮助我,如果这是问题的话。如果我能够准确地确定我的问题所在,我会很高兴地将这个问题扩大。请再读一遍!您提供了“尝试解决方案”可能是错误的。您需要提供“更广泛的情况”"。更具体地说,你说了
,我有以下返回一个对象的信息:
…你从哪里得到的?是什么提供的?为什么你要生成带有数字的动态字段?有了这些信息,我们也许可以为你找到一个更好的问题解决方案。我大约95%确信你有一个-ie,你正在尝试解决这个问题错误的问题。@Jamiec我完全同意这可能就是问题所在。有什么建议吗?描述你正在试图解决的问题,而不是你认为你应该如何解决它。直接从我链接
中的投票结果中选择答案,为了避免落入这个陷阱,在尝试解决问题时,一定要包括更广泛的信息。
@Jamiec当我不知道如何着手解决问题时,我如何提供一个尝试性的解决方案?特别是如果问题是我对问题的思考方式不正确的话?我希望人们能在这方面帮助我,如果