1

您好我有以下表格数据:

<tr>
  <td><input type="text" data-usage="payment" /></td>
  <td><input type="text" data-usage="payment" /></td>
  <td data-usage="amount"></td>
</tr>

然后我试图做到这一点,所以当用户离开带有 data-usage="payment" 的文本框时,带有 data-usage="amount" 的 td 的文本设置为“info”。我写:

<script type="text/javascript">
    $(document).ready(function () {

        $("input[data-usage='payment']").blur(function () {

            $(this).closest("td[data-usage='amount']").text("info");
        });

    });
</script>

我不明白为什么,但这甚至不起作用。该事件被触发,它似乎找到了 td 但文本甚至没有设置。

谁能告诉我为什么?有没有更好的方法来解决这个问题?

4

3 回答 3

2

closest()仅在元素的父元素中搜索,您正在寻找最接近的 TR,然后是具有 data 属性的 TD:

$("input[data-usage='payment']").blur(function () {
     $(this).closest("tr").find("td[data-usage='amount']").text("info");
});
于 2013-07-09T04:04:51.580 回答
0

这是完整的例子:

    $("input[data-usage='payment']").blur(function () {
        $(this).closest("tr").find("td[data-usage='amount']").text("info");
    });

这是示例:示例

于 2013-07-09T04:16:45.787 回答
0

[data-usage='amount']td 不是目标输入元素的父元素,它实际上是包含td目标输入元素的兄弟

$(document).ready(function () {
    $("input[data-usage='payment']").blur(function () {
        $(this).closest("td").siblings("[data-usage='amount']").text("info");
    });
});

演示:小提琴

于 2013-07-09T04:05:13.287 回答