У меня есть функция ниже:

$(".import-shipments").on("click", function(){
        var sendinger = $('#shipments').val().split("/\n/");

        for(var i = 0; i < sendinger.length; i++){
                    console.log(sendinger[i]); //This returns 3 lines
                    addRow(i,"#rows") //It only adds 1 line
        }

});

Которая принимает значения в моем текстовом поле и подсчитывает каждое значение в строке.

Затем у меня есть функция ниже, которая должна добавлять новую «строку» для каждого значения:

  function addRow(id, element){

            var row = '<div class="row">'+
                      '<div>#'+id+'</div>'
                      '</div>';

                     $(element).append(row);

  }

Проблема в том, что выше добавляется только одна строка, тогда как она должна добавлять 3 .

Пожалуйста, просмотрите этот jsFiddle , чтобы узнать, как это работает.

Я хочу, чтобы для каждой строки в текстовой области также выполнялась функция addRow() для каждой строки.

1
oliverbj 24 Июл 2017 в 15:19

1 ответ

Лучший ответ

Вы используете неправильный аргумент в функции разделения. Здесь вы смешиваете регулярное выражение и строку. который возвращает только один элемент в массиве seninger. должен быть:

 var sendinger = $('#shipments').val().split(/\n/); //USING Regex

Или

 var sendinger = $('#shipments').val().split("\n"); //USING String

Рабочая демонстрация

3
Milind Anantwar 24 Июл 2017 в 15:25
Или .split(/\n/)
 – 
charlietfl
24 Июл 2017 в 15:24
Обновлял только это :)
 – 
Milind Anantwar
24 Июл 2017 в 15:25
Работает как шарм! Спасибо!!
 – 
oliverbj
24 Июл 2017 в 15:50