我尝试在以下代码中设置
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 编辑器取代。我如何为其设置值?
非常感谢您的帮助!
自 3.0 发布以来,执行此操作的方式略有变化。现在是这样的:
var textArea = document.getElementById('myScript');
var editor = CodeMirror.fromTextArea(textArea);
editor.getDoc().setValue('var msg = "Hi";');
我喜欢例子。试试这个:
CodeMirror.fromTextArea(document.getElementById(id), {
lineNumbers: true
}).setValue("your code here");
正如你所说,textarea被Codemirror取代了。但它被类为“CodeMirror”的元素所取代。您可以使用 querySelector 来获取元素。当前的 CodeMirror 实例(及其方法)附加到此元素。所以你可以这样做:
document.querySelector('.CodeMirror').CodeMirror.setValue('VALUE')
CodeMirror ~4.6.0 你可以这样做,假设你有一个 codemirror 对象:
var currentValue = myCodeMirrorObject.cm.getValue();
var str = 'some new value';
myCodeMirrorObject.cm.setValue(str);
您拥有的代码应该可以工作。失败的最可能的解释是元素在运行时不存在。如果是这样,解决方案是:
移动 JS,使其出现在创建元素之后(例如,到</body>
onload
var editor=CodeMirror.fromTextArea('textarea_id');
editor.setCode('your string');