2013-11-08 2 views
10

HTMLJQuery каждая строка в текстовой

<textarea id="gps" name="gps"></textarea> 
<button>Click</button> 

JQuery

$('button').click(function(){ 
    var arrayOfLines = $('#gps').val().split('\n'); 
    $.each(arrayOfLines, function(index, item) { 
     $this = $(this); 
     console.log($this);   
    }); 
}); 

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

JSBin

+0

Хорошо. Это то, что вы делаете с '$ (this)', не так ли? –

ответ

13

Вы помещаете строку в объект jQuery. Просто используйте item вместо:

$('button').click(function(){ 
    var arrayOfLines = $('#gps').val().split('\n'); 
    $.each(arrayOfLines, function(index, item) { 
     console.log(item); 
    }); 
}); 
+0

спасибо за эту штуку! – ngplayground

+0

Без проблем, рад помочь. –

+1

Точнее, OP строит объект jQuery не со строкой, а с экземпляром String. Не имеет значения, но это интересный факт о $. –

0

Вы не имеем дело с «это» правильно. Попробуйте следующее:

$('button').click(function(){ 
    var arrayOfLines = $('#gps').val().split('\n'); 
    $.each(arrayOfLines, function(index, item) { 
    console.log(this); 
    }); 
}); 

Обратите внимание, что «это» переменной во внутренней функции начинается с новой строки, я считаю. Но это должно привести вас к правильному пути.

0

Я думаю, что вы не можете использовать теги html таким образом, для этого вам нужно указать и идентификатор для каждого тега, а затем получить доступ к функции jQuery.

<textarea id="gps" name="gps"></textarea> 
<button id="btn">Click</button> 
$('#btn').click(function(){ 
    var arrayOfLines = $('#gps').val().split('\n'); 
    $.each(arrayOfLines, function(index, item) { 
     $this = $(this); 
     console.log($this);   
    }); 
}); 
1

Внутри .each loop line id 'item' object, а не 'this'.

<textarea id="gps" name="gps"></textarea> 
    <button id="btn">Click</button> 
    $('#btn').click(function(){ 
     var arrayOfLines = $('#gps').val().split('\n'); 
     $.each(arrayOfLines, function(index, item) { 
      console.log('here is line:', item);   
     }); 
    }); 
Смежные вопросы