Найти следующую текстовую область, используя Jquery - PullRequest
6 голосов
/ 05 января 2011

HTML

<tr id="rowId"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>
<tr id="rowId2"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>
<tr id="rowId3"><td><textarea class="inputTextarea"></textarea></td><td><textarea class="inputTextarea"></textarea></td></tr>

При условии, что я знаю rowId, как мне найти следующую текстовую область на этой странице, начиная с любой произвольной точки.Я не имею в виду ЛЮБОЙ ввод, только текстовую область.Мне нужно иметь возможность начинать В ЛЮБОЙ строке и переходить к следующей текстовой области, по сути, спускаясь по строкам.

РЕДАКТИРОВАТЬ На основе ответов я использовал следующий код для обхода текстовой области строка за строкой:

var curElt = $('#' + startAt);  //startAt is the first row id   

        for(var i=1; i < 10; i++) {

            $(curElt).find('textarea').eq(0).val(i);
            $(curElt).find('textarea').eq(1).val(i+1);

            curElt = $(curElt).next();
        }

Ответы [ 4 ]

11 голосов
/ 05 января 2011

Вы можете использовать методы next и find:

$('#' + current_row_id).next().find('textarea').eq(0);

next получит следующего брата, а затем find найдет все элементы в наборе, которые соответствуют переданному селектору (ам), затем eq(0) получит первый элемент в результирующем наборе, возвращенный из find.

5 голосов
/ 05 января 2011
$('#rowId2').find('textarea');

Это найдет обоих детей в ряду. Если вы хотите первый, либо:

$('#rowId2').find('textarea').eq(0); //jQuery object
$('#rowId2').find('textarea')[0];    //DOM Element

Редактировать : Если вы знаете только одну строку и хотите найти первую текстовую область в следующей строке:

$('#rowId').next().find('textarea').eq(0);
4 голосов
/ 05 января 2011
$textarea = $('#rowId textarea').eq(0);

$nextarea = $textarea.closest('tr').next().find('textarea').eq(0);

Просто чтобы уточнить, $ .fn.next () находит следующего родного брата в DOM.

  1. Начиная с текстовой области, сначала вы должны найтиего parent-tr ($ textarea.closest ('tr')).
  2. Оттуда используйте next, чтобы найти следующий tr (.next ())
  3. Наконец, найдите первое textareaв пределах , что tr (.find ('textarea'). eq (0))
1 голос
/ 05 января 2011

Попробуйте это:

$("#rowID textarea:first-child").val()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...