Jquery: как вы прокручиваете каждую новую строку текста, введенную внутри текстового поля?

скажем внутри <textarea>, я набираю кучу ключевых слов в каждой новой строке.

keyword1
keyword2
keyword3
...




$('textarea[name=sometextarea]').val().split('\n').each(function(e){
alert($(this));                 
});

Ответ 1

Объект массива не имеет метода each. Поскольку вы зацикливаете строки, а не элементы, используйте метод jQuery.each (вместо jQuery(). Каждый метод):

var lines = $('textarea[name=sometextarea]').val().split('\n');
$.each(lines, function(){
  alert(this);
});

Ответ 2

Я думаю, что ваша проблема связана с объектом jquery. val() возвращает строку, а split() возвращает Array. Но каждый() является свойством объекта JQuery. Вместо этого попробуйте:

$($('textarea[name=sometextarea]').val().split('\n')).each(function(e){
alert($(this));                                 
});

обратите внимание на дополнительные $(...) вокруг возврата split().

Ответ 3

jQuery предоставляет метод each объекта jQuery (или $). Это нужно использовать, а не создавать объект jQuery из массива:

$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
    alert(this);
});

Ответ 4

$("#your-text-area").live("keypress",function(){
            var lines = $(this).val().split("\n");
            $.each(lines, function(n, elem) {
                     console.log(elem);
            $("<li></li>").text(elem).appendTo($("#target"));
});

Вы можете "слушать", используя live on keypress, поскольку другие предложили разделить на новую строку, а трюк в цикле - это то, что с "каждым" вы получаете индекс и значение (elem в коде). Этот фрагмент добавляет значение строки к другому целевому элементу, который вы можете очистить перед циклом, используя   $ ( "# Мишень" ) пустой();.

Ответ 5

Как это...

$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);                                 
});

Ответ 6

Если у меня есть текстовая область с шириной и текстом, где текст автоматически переходит в новую строку из-за конца текстовой области, может ли эта строка быть разделена на новую строку на строку?

Ответ 7

Я решил это с помощью codeigniter и php. Вот код:

$this->load->helper('text');
$name = 'some text that is longer than the width of text area and you need to do some thing with it...';
$name_array = word_wrap($name, 20); //20 is a number of character where your text will be wrapped.
foreach(preg_split("/((\r?\n)|(\r\n?))/", $name_array) as $line){
         echo $line.'</br>';
    //from here, you can do what ever you want with $line, put it to another array..whatever
}