我试图获取textarea codemirror的值,以便在编辑后将json发送到服务器以保存它们,但是我无法选择ELEMENT ...我也尝试了获取元素由id ...同样的事情。我明白了:
无法阅读财产'价值'为null
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="http://esironal.github.io/cmtouch/lib/codemirror.js"></script>
<link rel="stylesheet" href="http://esironal.github.io/cmtouch/lib/codemirror.css">
<script src="http://esironal.github.io/cmtouch/lib/codemirror.js"></script>
<div><textarea class="yyyyyy232" id="scripttextarea_1"></textarea><button type="submit" class='yy4e' id='btn_1'>Save1</button></div>
<div><textarea class="yyyyyy232" id="scripttextarea_2"></textarea><button type="submit" class='yy4e' id='btn_2'>Save2</button></div>
<div><textarea class="yyyyyy232" id="scripttextarea_3"></textarea><button type="submit" class='yy4e' id='btn_3'>Save3</button></div>
<script>
$(document).ready(function() {
myTextarea=document.getElementsByClassName('yyyyyy232');
console.log($(myTextarea).length);
for (i=0;i<myTextarea.length;i++){
cm=CodeMirror.fromTextArea($(myTextarea[i])[0], {
mode: "python",
lineNumbers: true,
lineWrapping: true,
indentUnit: 4,
height: 400
});
};
});
$('.yy4e').on('click',function(e){
e.preventDefault();
ppp=$(this).attr('id').split('_')[1];
xx=document.getElementById("scripttextarea_"+ppp);
cm=CodeMirror.fromTextArea(xx).getValue();
console.log(cm);
$.getJSON('/edit_scripts',{
'command' : cm
},function(data){
console.log('edited');
})
});
</script>
一些帮助真的很棒,因为这个问题让我感到困扰了好几个小时。谢谢
答案 0 :(得分:1)
$(document).ready(function() {
myTextarea=document.getElementsByClassName("yyyyyy232");
console.log($(myTextarea).length);
var cm = new Array();
for (i=0;i<myTextarea.length;i++){
cm[i]=CodeMirror.fromTextArea($(myTextarea[i])[0], {
mode: "python",
lineNumbers: true,
lineWrapping: true,
indentUnit: 4,
height: 400
});
};
$(".yy4e").on("click",function(e){
e.preventDefault();
ppp=$(this).attr("id").split("-")[1];
numcode= parseInt(ppp)-1;
xx=$("#scripttextarea_"+ppp).attr("id");
console.log(xx);
var Code=cm[numcode].getValue();
console.log(Code);
$.getJSON("/test",{
"command" : cm[numcode]
},function(data){
console.log("edited");
})
});
});
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"></script>
<script src="http://esironal.github.io/cmtouch/lib/codemirror.js"></script>
<link rel="stylesheet" href="http://esironal.github.io/cmtouch/lib/codemirror.css">
<script src="http://esironal.github.io/cmtouch/lib/codemirror.js"></script>
<div><textarea class="yyyyyy232" id="scripttextarea_1"></textarea><button type="submit" class="yy4e" id="btn-1">Save1</button></div>
<div><textarea class="yyyyyy232" id="scripttextarea_2"></textarea><button type="submit" class="yy4e" id="btn-2">Save2</button></div>
<div><textarea class="yyyyyy232" id="scripttextarea_3"></textarea><button type="submit" class="yy4e" id="btn-3">Save3</button></div>
这是您的代码的一个工作示例 你有几个关于btn名称的问题 第二次点击文件准备就绪 第三,你将所有代码镜像识别为值cm,它应该是数组cm [] 你需要通过cm []数组编号
调用文本区域值答案 1 :(得分:0)
点击此处:
JSONObject jsonObject = CustomJSONObjectProvider.getObjectOrThrow("name");
见这里:
ppp=$(this).attr('id').split('_')[1];
btn1 无法按“ _ ”进行拆分,您可以将 btn1 替换为 bth_1
提醒:您可以先尝试自己逐步打印出价值。