我有一个简单的混合代码(jquery和javascript):
$(document).ready(function(){
var mixedMode = {
name: "htmlmixed",
scriptTypes: [{matches: /\/x-handlebars-template|\/x-mustache/i,
mode: null},
{matches: /(text|application)\/(x-)?vb(a|script)/i,
mode: "vbscript"}]
};
var editor = CodeMirror.fromTextArea(document.getElementById("HTMLcodeMirror"), {
mode: mixedMode,
selectionPointer: true,
theme: "eclipse"
});
var html = $('#HTMLcodeMirror').val();
$('#html-output').html(html);
$('.run-btn').click(function(){
html = editor.getValue();
$('#html-output').html(html);
console.log('clicked');
console.log(html);
});
console.log(html);
});
这里我要转换var editor = CodeMirror.fromTextArea(document.getElementById("HTMLcodeMirror"), {
如下:
var editor = CodeMirror.fromTextArea($("#HTMLcodeMirror"), {
我遇到以下错误:
Uncaught TypeError: textarea.getAttribute is not a function
at Function.fromTextArea (codemirror.js?ver=1.0.0:9562)
at HTMLDocument.<anonymous> (HTML.js?ver=1.1.4:9)
at l (jquery-3.3.1.min.js?ver=3.1.1:2)
at c (jquery-3.3.1.min.js?ver=3.1.1:2)
我的代码有什么问题?有想法吗?
答案 0 :(得分:1)
fromTextarea()
方法要求使用dom元素而不是jQuery对象。
您可以通过几种方式从$("#HTMLcodeMirror")
获取底层dom元素
最简单的是$("#HTMLcodeMirror")[0]
也可以使用$("#HTMLcodeMirror").get(0)