javascript - 获取父行并在 JQuery 中找到一个元素

标签 javascript jquery html string traversal

我在 html 表格的一列中有一个复选框。当我选中或取消选中它时,我希望在同一行的下一列的文本区域中显示/删除一些文本。
我做了以下事情:

$(this).parent().parent().find('textarea').text = 'some text' 

还有

$(this).parent().parent().find('textarea').val = 'some text' 

但它不起作用。

html 是这样的:

<tr>
    <td>
        <input type="checkbox" />
    </td>
    <td>
        <textarea>
    </td>
</tr>

我想获取我选中的复选框的相同 tr 的文本区域

更新

我发现我应该使用 .val("some text") 但现在只有当我点击第一行的复选框时才会调用该函数。不为其余

最佳答案

问题在于您尝试设置值的方式,而不是您查找元素的方式

试试这个

$(this).closest('tr').find('textarea').val("some text");

有关详细信息,请参见此处。 val()

更新

元素 ID 必须是唯一的,这样您就不能重复使用同一个元素。为所有复选框提供唯一 ID,即“chkOne”、“chkTwo”等。然后在您希望从中运行此功能的所有复选框上使用一个类。即 class="chkSelection"。然后将您的 jQuery 更改为如下所示

$('.chkSelection').change(function() {
   if($(this).is(':checked')){
      $(this).closest('tr').find('textarea:first').text('Some text here');
   }
});

这样一来,所有带有“chkSelection”类的复选框在更改时都会运行查找下一个文本区域并设置文本的功能。

关于javascript - 获取父行并在 JQuery 中找到一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18398042/

相关文章:

javascript - 一个 JavaScript 错误的包罗万象

javascript - $scope 更改后 ng-repeat 不会第二次触发

javascript - JS过滤数组,如果数组中包含字符串

javascript - 如何重新加载jqxwindow initContent : function ()?

javascript - 在 appendChild 上未加载 Jquery 脚本

javascript - jQuery 中的焦点方法不起作用

javascript - javascript、jquery 中未定义 var 的问题。如何?

html - 具有可变长度主要部分的页面的页脚

使用输入和复选框的 jQuery 过滤器列表,应优先考虑输入

javascript - 删除带有附加 anchor 标记的 `<li>` 留下样式属性