使用Jquery查找下一个textarea

时间:2011-01-05 01:49:16

标签: javascript jquery dom

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,我如何从任何仲裁点开始在此页面上找到下一个textarea。我不是指任何输入,只是textarea。我需要能够在任何行开始,然后继续前进到下一个文本区域,基本上是沿着行进行。

EDIT 基于答案,我使用以下代码逐行遍历textareas:

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 个答案:

答案 0 :(得分:11)

您可以使用nextfind方法:

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

next将获得下一个兄弟,然后find将找到集合中与传入选择器匹配的所有元素,然后eq(0)将获取结果集中的第一个元素从find返回。

答案 1 :(得分:5)

$('#rowId2').find('textarea');

这将找到该行的两个孩子。如果你想要第一个,可以:

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

修改:如果您只知道一行,并希望在下一行找到第一个textarea:

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

答案 2 :(得分:4)

$textarea = $('#rowId textarea').eq(0);

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

为了澄清,$ .fn.next()在DOM中找到下一个兄弟

  1. 首先从textarea开始 你必须找到它的父母tr( $ textarea.closest('tr'))。
  2. 从那里,使用旁边找到下一个tr (.next())
  3. 最后,找到第一个 中的textarea tr( .find('textarea')。eq(0))

答案 3 :(得分:1)

试试这个:

$("#rowID textarea:first-child").val()