2016-08-03 2 views
0

많은 다른 탭에서 CodeMirror 텍스트 영역을 만들므로 클릭 할 때 생성되는 탭의 텍스트 영역을 반복해야합니다. 요소를 찾았습니다. 변환해야하는 텍스트 영역입니다. 내가 CodeMirror에 통과 및 변환 jQuery를 .each()를 사용하려고 해요 :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 개의 textareas를 모두 가지고 있지만, 잘못된 방법으로 index, el 매개 변수를 사용하고 있습니다. 아무도 이것으로 나를 도울 수 있습니까?

답변

1

무시 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, { 
     ... 
    }); 
}); 
+0

Thx 그 것이었다. 나는 엘 매개 변수를 갖기 위해 노력했다고 생각했지만 아마 그 앞이나 앞에 $가있을 것입니다. Thx지도 팁, 대신 사용하려고합니다. –