jquery:你如何遍历textarea中输入的每个文本换行符?
让我们在 ,我在每个新行上键入一堆关键字。
keyword1 keyword2 keyword3 ... $('textarea[name=sometextarea]').val().split('\n').each(function(e){ alert($(this)); });
数组对象没有任何方法。 在循环字符串而不是元素时,使用jQuery.each
方法(而不是jQuery()。每个方法):
var lines = $('textarea[name=sometextarea]').val().split('\n'); $.each(lines, function(){ alert(this); });
我认为你的问题是jquery对象。 val()返回一个字符串,split()将返回一个数组。 但each()是JQuery对象的属性。 试试这个:
$($('textarea[name=sometextarea]').val().split('\n')).each(function(e){ alert($(this)); });
注意split()返回周围的额外$(…)。
jQuery在jQuery
(或$
)对象上提供了each
方法。 应该使用它,而不是从数组中创建一个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); $("").text(elem).appendTo($("#target")); });
你可以使用live on keypress“监听”,其他人建议用换行符分割,循环中的技巧是“每个”你得到一个索引和值(代码中的elem)。 此代码段将行值附加到另一个目标元素,您可以在使用$(“#target”)循环之前清空该目标元素.bull();
像这样…
$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){ alert(this); });
如果我有一个有一些宽度和文本类型的textarea,由于textarea的结尾文本会自动转到新行,那么该字符串是否可以每行拆分成新的字符串?
我用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.''; //from here, you can do what ever you want with $line, put it to another array..whatever }