Jquery选择器 - 如何选择下一列textarea

时间:2012-02-16 19:42:19

标签: jquery jquery-selectors parent next

确定,

以下是例子:

<table>
    <tr>
        <td>
            <type="button" id="mybutton" value="insert">
        </td>
        <td>
            <textarea>My Text</textarea>
        </td>
    </tr>
</table>

当我点击我的按钮时,我需要更改textarea值。该值将来自一个set变量。此代码没有其他ID或类可供参考。所以我有以下

jQuery('#mybutton').click(function(){

  jQuery(this).parent().next()...????;

});

这会让我进入下一栏,但我不知道如何从那里选择textarea

我尝试child(),另一个next(),但没有运气。

4 个答案:

答案 0 :(得分:3)

要在jQuery中选择子元素,我们使用.children()

jQuery('#mybutton').click(function(){
    jQuery(this).parent().next().children().val(some_variable);
});

请注意,这将选择textarea的所有同级元素,除非您在textarea函数调用中添加.children()作为选择器:.children('textarea')

您还可以使用.closest().find()

jQuery('#mybutton').click(function(){
    jQuery(this).closest('tr').find('textarea').val(some_variable);
});

.closest()找到与选择器匹配的第一个祖先元素,并且find,在根选择的后代元素中找到选择器。

ya的一些文档:

答案 1 :(得分:1)

如果此表可能在将来发生变化,您不希望变得模棱两可。以下是您想要的更具体的内容:

$(this).closest('table').find('textarea').val('your val');

更多信息:

.closest()
.find()

答案 2 :(得分:0)

尝试使用以下内容:

jQuery(this).parent().next().find('textarea').val('CHANGE VALUE');;

答案 3 :(得分:0)

有很多方法可以实现同样的目标。以下是一个

$(this).parent().siblings().find('textarea').val("New Text");