Сохранение номера строки всех вхождений конкретного символа в JavaScript - PullRequest
0 голосов
/ 14 января 2019

Я перехожу по этой ссылке Узнайте номер строки (строки) курсора в текстовой области . Я хочу сохранить номер строки всех вхождений "{" в массиве, пока пользователь пишет в textarea. Я хочу отобразить содержимое массива после него.

Вот исходный код, который я пробовал:

<textarea rows="10" cols="100" id="editor" onkeypress="hello(event);" ></textarea>
<div id="lineNo"></div>

<script>

    function hello(e)
    {
        var keyp=e.charCode;
        var c=0,i;
        var arr=new Array();
        if(keyp=='123')
        {
            var arr[c++]=getLineNumber();               
        }
        for (i=0;i<arr.length;i++)
        {
            document.getElementById("lineNo").innerHTML="Array content is...   "+ arr[i];
            //document.write(arr[i] + "<br >");
        }       
    }
    function getLineNumber() {
        var textarea=document.getElementById("editor")
        var x=textarea.value.substr(0, textarea.selectionStart).split("\n").length;
        return x;
    }

</script>

Но содержимое массива не отображается. Пожалуйста, предложите мне, что не так в коде, а также, если возможно, скажите, пожалуйста, лучший способ сохранить номер строки всех вхождений определенного символа в javascript и отобразить его.

1 Ответ

0 голосов
/ 14 января 2019

Это то, что вы хотите сделать:

<textarea rows="10" cols="100" id="editor" onkeypress="hello(event);" ></textarea>
<div id="lineNo"></div>
<script>
  var arr = [];
  var c = 0;
  function hello(e) {
    var keyp=e.charCode; 
    if(keyp=='123') {
      arr[c++] = getLineNumber();
    }

    document.getElementById("lineNo").innerHTML=
      "Array content is...   "+ arr.join(' ');      
  }
  
  function getLineNumber() {
    var ta=document.getElementById("editor")
    var x=ta.value.substr(0, ta.selectionStart).split("\n").length;
    console.log(x)
    return x;
  }
</script>
...