parseInt 返回非数字 (NaN)

我制作了一个 IDE(带有<textarea>CodeMirror),如下所示:

https://img3.mukewang.com/651d0e440001fbd412460720.jpg

左边有一个div包含行数的计数器。

所以我想做的是获取最后一个行号(上图中的 12)。


这是我的代码:



$(document).ready(function() {    

    $(document).keydown(function() {

        let element = document.getElementsByClassName("CodeMirror-linenumber");

        element = element.item(element.length - 1);

        escape(element);

        let num = "";

        num = parseInt(element);

        console.log(num);

    });

});

<!DOCTYPE html>

<html>

    <head>

        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

        <script src="array.js" type="text/javascript"></script>

        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.32.0/codemirror.min.css"/>

        <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/codemirror.min.js"></script>

        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/mode/xml/xml.min.js"></script>

    </head>

    <body>

        <textarea id="editor"></textarea>

        <script>

            var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("editor"), {

                  mode: "xml",

                  htmlMode: true,

                  lineNumbers: true

            });

        </script>

    </body>

</html>

问题是,当我在 Chrome 上运行它时,它会给我一个输出"NaN"。 我知道这个问题已经被问过,但我没有找到满意的答案。

慕桂英4014372
浏览 122回答 0
0回答

慕码人8056858

没有理由让你使用escape(element)。事实上,无论如何它都已被弃用。您所做的只是将元素编码为某种您不想要的十六进制字符串。您想要的是简单地访问innerText元素的属性,并使用一元加运算符parseInt(element.innerText)或更好的一元加运算符来获取行号:+element.innerText$(document).ready(function() {        $(document).keydown(function() {        let element = document.getElementsByClassName("CodeMirror-linenumber");        element = element.item(element.length - 1);        console.log(+element.innerText);    });});<!DOCTYPE html><html>    <head>        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">        <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>        <script src="array.js" type="text/javascript"></script>        <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.32.0/codemirror.min.css"/>        <script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/codemirror.min.js"></script>        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.52.2/mode/xml/xml.min.js"></script>    </head>    <body>        <textarea id="editor"></textarea>        <script>            var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("editor"), {                  mode: "xml",                  htmlMode: true,                  lineNumbers: true            });        </script>    </body></html>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5