jQuery.each() 和 CodeMirror
jQuery .each() and CodeMirror
我正在许多不同的选项卡中创建 CodeMirror 文本区域,我需要循环访问通过单击创建的选项卡中的文本区域。我找到了元素,那就是我需要转换的文本区域。我正在尝试使用 jQuery .each()
来浏览它们并转换为 CodeMirror:
var queryBuilder = $(tabPanelDiv).find(".QueryBuilder");
queryBuilder.each(function(index, el) {
var editorQuery = CodeMirror.fromTextArea($(el)[index], {
lineNumbers: true,
tabMode: "indent",
mode: "text/x-sql",
theme: "eclipse"
});
queryArr.push(editorQuery);
});
我遇到的问题是我缺乏使用 .each()
以及如何将元素插入 CodeMirror.fromTextArea()
的经验。在此 .each()
中,转换适用于第一个文本区域,但第二个文本区域始终以未定义的形式进入 CodeMirror 代码。我拥有所有 5 个文本区域,但我以错误的方式使用 index, el
参数。谁能帮我解决这个问题?
忽略index
。在 each
中,el
参数 是 该索引处的正确元素,index
参数只是为了让您知道自己在哪里在你正在迭代的集合中。
你应该简单地使用 el
,而不是 $(el)[index]
:
queryBuilder.each(function(index, el) {
var editorQuery = CodeMirror.fromTextArea(el, {
...
});
queryArr.push(editorQuery);
});
此外,因为您要将一个数组(元素)转换为另一个数组(CodeMirror 对象),您应该使用 map
,而不是 each
:
var queryArr = queryBuilder.map(function(index, el) {
return CodeMirror.fromTextArea(el, {
...
});
});
我正在许多不同的选项卡中创建 CodeMirror 文本区域,我需要循环访问通过单击创建的选项卡中的文本区域。我找到了元素,那就是我需要转换的文本区域。我正在尝试使用 jQuery .each()
来浏览它们并转换为 CodeMirror:
var queryBuilder = $(tabPanelDiv).find(".QueryBuilder");
queryBuilder.each(function(index, el) {
var editorQuery = CodeMirror.fromTextArea($(el)[index], {
lineNumbers: true,
tabMode: "indent",
mode: "text/x-sql",
theme: "eclipse"
});
queryArr.push(editorQuery);
});
我遇到的问题是我缺乏使用 .each()
以及如何将元素插入 CodeMirror.fromTextArea()
的经验。在此 .each()
中,转换适用于第一个文本区域,但第二个文本区域始终以未定义的形式进入 CodeMirror 代码。我拥有所有 5 个文本区域,但我以错误的方式使用 index, el
参数。谁能帮我解决这个问题?
忽略index
。在 each
中,el
参数 是 该索引处的正确元素,index
参数只是为了让您知道自己在哪里在你正在迭代的集合中。
你应该简单地使用 el
,而不是 $(el)[index]
:
queryBuilder.each(function(index, el) {
var editorQuery = CodeMirror.fromTextArea(el, {
...
});
queryArr.push(editorQuery);
});
此外,因为您要将一个数组(元素)转换为另一个数组(CodeMirror 对象),您应该使用 map
,而不是 each
:
var queryArr = queryBuilder.map(function(index, el) {
return CodeMirror.fromTextArea(el, {
...
});
});