让我们在<textarea>
里面说,我在每一行都输入一堆关键字。
keyword1
keyword2
keyword3
...
$('textarea[name=sometextarea]').val().split('\n').each(function(e){
alert($(this));
});
答案 0 :(得分:22)
数组对象没有任何each
方法。在循环字符串而不是元素时,使用jQuery.each
方法(而不是jQuery()。每个方法):
var lines = $('textarea[name=sometextarea]').val().split('\n');
$.each(lines, function(){
alert(this);
});
答案 1 :(得分:3)
我认为您的问题在于jquery对象。 val()返回一个字符串,split()将返回一个数组。但each()是JQuery对象的属性。试试这个:
$($('textarea[name=sometextarea]').val().split('\n')).each(function(e){
alert($(this));
});
注意split()返回附近的额外$(...)。
答案 2 :(得分:1)
jQuery在each
(或jQuery
)对象上提供$
方法。应该使用它,而不是从数组中创建一个jQuery对象:
$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);
});
答案 3 :(得分:1)
$("#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"));
});
你可以&#34;听&#34;使用live on keypress,正如其他人建议用换行符分割,循环中的技巧是&#34;每个&#34;你得到一个索引和值(代码中的元素)。此片段将行值附加到另一个目标元素,您可以在循环使用之前将其清空 $(&#34;#目标&#34)空();
答案 4 :(得分:0)
喜欢这个......
$.each($('textarea[name=sometextarea]').val().split('\n'), function(e){
alert(this);
});
答案 5 :(得分:0)
如果我有一个有一些宽度和文本类型的textarea,由于textarea的结尾,文本会自动转到新行,那么每行可以将该字符串拆分成新的字符串吗?
答案 6 :(得分:-1)
我用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
}