【问题标题】:Jquery Selector - How to select next column textareaJquery Selector - 如何选择下一列文本区域
【发布时间】:2012-02-16 19:42:19
【问题描述】:

好的,

下面是例子:

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

单击按钮时,我需要更改 textarea 值。该值将来自一个集合变量。此代码没有其他要引用的 ID 或类。所以我有以下

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

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

});

这将带我进入下一列,但我不知道如何从那里选择textarea。

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

【问题讨论】:

    标签: jquery jquery-selectors parent next


    【解决方案1】:

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

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

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

    您也可以使用.closest() 和.find():

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

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

    给你的一些文档:

    【讨论】:

    • 非常感谢。我尝试了你所说的同样的事情,但我有 Child 而不是 Children。
    【解决方案2】:

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

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

    更多信息:

    .closest()
    .find()

    【讨论】:

      【解决方案3】:

      尝试使用这样的东西:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-13
          • 1970-01-01
          • 1970-01-01
          • 2018-04-22
          • 2018-11-04
          • 1970-01-01
          相关资源
          最近更新 更多