скажем внутри <textarea>
, я набираю кучу ключевых слов в каждой новой строке.
keyword1
keyword2
keyword3
...
$('textarea[name=sometextarea]').val().split('\n').each(function(e){
alert($(this));
});
скажем внутри <textarea>
, я набираю кучу ключевых слов в каждой новой строке.
keyword1
keyword2
keyword3
...
$('textarea[name=sometextarea]').val().split('\n').each(function(e){
alert($(this));
});
Объект массива не имеет метода each
. Поскольку вы зацикливаете строки, а не элементы, используйте метод jQuery.each
(вместо jQuery(). Каждый метод):
var lines = $('textarea[name=sometextarea]').val().split('\n');
$.each(lines, function(){
alert(this);
});
Я думаю, что ваша проблема связана с объектом jquery. val() возвращает строку, а split() возвращает Array. Но каждый() является свойством объекта JQuery. Вместо этого попробуйте:
$($('textarea[name=sometextarea]').val().split('\n')).each(function(e){
alert($(this));
});
обратите внимание на дополнительные $(...) вокруг возврата split().
jQuery предоставляет метод each
объекта jQuery
(или $
). Это нужно использовать, а не создавать объект jQuery из массива:
$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);
});
$("#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 в коде). Этот фрагмент добавляет значение строки к другому целевому элементу, который вы можете очистить перед циклом, используя $ ( "# Мишень" ) пустой();.
Как это...
$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);
});
Если у меня есть текстовая область с шириной и текстом, где текст автоматически переходит в новую строку из-за конца текстовой области, может ли эта строка быть разделена на новую строку на строку?
Я решил это с помощью 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
}