在下一个td
中查找input
元素时遇到问题。我需要在tblCashSum的textbox的td类中放置一个值。
但是,如果我执行以下操作:
alert(formElement.nextAll('td.tblCashSum').find('input.cashSum').val());
它是undefined。
HTML:
<tr>
<td class='tblCashType'>100</td>
<td class='tblCashAmount'><asp:TextBox class="inputBox" ID="noteAmount100" runat="server"></asp:TextBox></td>
<td class='tblCashSum'><asp:TextBox class="inputBoxDisabled cashSum" ReadOnly="true" runat="server" ID="cashSum100"></asp:TextBox></td>
</tr>
Jquery:
$("noteAmount").blur(function(){
calc($(this));
});
function calc(formElement)
{
a = formElement.val();
b = formElement.closest('td').siblings('td.tblCashType').text();
x = a * b;
formElement.nextAll('td.tblCashSum').find('input.cashSum').val(x);
}
2条答案
按热度按时间juzqafwq1#
你传递的是一个字符串,它是输入元素的值,你应该首先传递对象,注意你错过了ID选择器的
#
。然后你可以使用
parent
和next
方法:请注意,如果你的元素有ID属性,你可以直接选择它们,这比遍历DOM更快。
我在你的标记中找不到ID为 noteAmount 的元素,如果你有多个ID相同的元素,你的标记就会无效,你会得到意想不到的结果,你也可以尝试以下方法:
kokeuurv2#
您需要在输入的
.parent()
上使用.next()
试试
formElement.closest('td').next('td.tblCashSum')
或
//
$("noteAmount")
也没有任何意义……假设为$('[id*="noteAmount"]')