您好我有以下表格数据:
<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,但文本甚至没有设置。
谁能告诉我为什么?有没有更好的方法来解决这个问题?
答案 0 :(得分:2)
closest()
只搜索元素的父元素,您正在寻找最接近的TR,然后是具有数据属性的TD:
$("input[data-usage='payment']").blur(function () {
$(this).closest("tr").find("td[data-usage='amount']").text("info");
});
答案 1 :(得分:0)
[data-usage='amount']
td不是目标输入元素的父级,它实际上是包含目标输入的td
的兄弟
$(document).ready(function () {
$("input[data-usage='payment']").blur(function () {
$(this).closest("td").siblings("[data-usage='amount']").text("info");
});
});
演示:Fiddle
答案 2 :(得分:0)
这是完整的例子:
$("input[data-usage='payment']").blur(function () {
$(this).closest("tr").find("td[data-usage='amount']").text("info");
});
这里是示例:example