javascript - 如何检测光标在哪一行?

标签 javascript jquery

我知道,这可能会变得非常复杂,也许几乎不可能,但也许你们中的某个人知道方法:

我目前正在为一种自行创建的简单语言(5 个关键字,WUHA!)编写一个编辑器,该语言已经运行得很好。但这不是重点,现在我想为其创建一个带有语法突出显示的编辑器。是的,如果可能的话,我希望它在线,所以我唯一的机会是 JavaScript/jQuery。

我还没有太多代码,这就是我到目前为止所得到的全部代码:

<!DOCTYPE html>
    <html>
    <head>
    <title>Kevcode Editor</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
    <script>
    $(document).ready(function(){
        var keywords = ["KEYWORD2", "KEYWORD3", "KEYWORD4"];

        $("#editor").keydown(function(e) {
            if(e.keyCode == 13) {
               //GET THE LINE HERE
               //mark keywords here
            }
        });

    });
</script>
</head>
<body style="background-color: grey;">
<label for="editor"><textarea id="editor" style="width: 1200px; height: 800px;"></textarea></label>
</body>
</html>

所以我的计划是创建一个 textarea ,如果我按 Enter(由键码 13 表示),我将运行一个脚本来检查每一行并重新着色关键字。但转念一想,如果检查整个脚本的话,会造成巨大的资源浪费。当然,脚本不会太长,有 5 个关键字,但如果我添加越来越多,检查整个代码就会很糟糕。所以我认为只要检查我更改的当前行就会节省我很多时间。但如何实现这样的逻辑呢?我怎样才能知道 jQuery 当前光标在哪一行?

抱歉,如果我解释不清楚,如果您有任何问题,请询问,我会提供尽可能多的信息。

哦,请不要给我完整的解决方案。我会出于培训目的这样做。

最佳答案

这将帮助您在文本区域中找到光标位置。

JavaScript:

var cursorPosition = $('#myTextarea').prop("selectionStart");

HTML:

<textarea id="myTextarea" rows="40" cols="50"></textarea>

关于javascript - 如何检测光标在哪一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22042343/

相关文章:

javascript - jQuery-UI 在单击时向右滑动 div

jquery - 无法正确定位清除按钮

javascript - 使用 jQuery 基于查询字符串自动完成字段

javascript - 如何将多维数组从 Javascript 转换为 C?

javascript - for循环不执行两次

javascript - 我们构建时刻时区的方式有什么区别?

javascript - 使用javascript获取一个asp.net Label控件

javascript - 动态地将升序 ID 附加到元素

javascript - 委托(delegate)函数在 jquery 2.1.1 中不起作用

javascript - 将数字日期转换为文本格式的最佳方法