无法使用js / jquery获取多个元素的Codemirror textarea值

时间:2016-11-21 05:49:06

标签: javascript jquery html codemirror

我试图获取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>           

一些帮助真的很棒,因为这个问题让我感到困扰了好几个小时。谢谢

2 个答案:

答案 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

提醒:您可以先尝试自己逐步打印出价值。