我尝试在以下代码中设置id4
:
<div id="id1">
<div id="id2">
<div id="id3">
<textarea id="id4"></textarea>
</div>
</div>
</div>
使用此代码:
document.getElementById('id4').value = "...";
而且:
document.getElementById('id3').getElementsByTagName('textarea')[0].value = "...";
但没有任何作用。
textarea
被CodeMirror编辑器取代。如何设置值呢?
非常感谢您的帮助!
答案 0 :(得分:48)
自3.0发布以来,这样做的方式略有改变。它现在是这样的:
var textArea = document.getElementById('myScript');
var editor = CodeMirror.fromTextArea(textArea);
editor.getDoc().setValue('var msg = "Hi";');
答案 1 :(得分:8)
我喜欢这个例子。试试这个:
CodeMirror.fromTextArea(document.getElementById(id), {
lineNumbers: true
}).setValue("your code here");
答案 2 :(得分:2)
CodeMirror~4.6.0你可以这样做,假设你有一个codemirror对象:
var currentValue = myCodeMirrorObject.cm.getValue();
var str = 'some new value';
myCodeMirrorObject.cm.setValue(str);
答案 3 :(得分:2)
正如您所说,textarea被Codemirror代替。但是它被具有“ CodeMirror”类的元素替换。您可以使用querySelector来获取元素。当前的CodeMirror实例(及其方法)已附加到此元素。因此,您可以这样做:
document.querySelector('.CodeMirror').CodeMirror.setValue('VALUE')
答案 4 :(得分:1)
您拥有的代码应该有效。对它失败的最可能解释是,在运行它时元素不存在。如果是这样,解决方案是:
</body>
之前)onload
事件处理程序的函数)答案 5 :(得分:0)
这已经适用于我的(相当旧的)CodeMirror版本:
var editor=CodeMirror.fromTextArea('textarea_id');
editor.setCode('your string');