我希望在表格价格文本框值更改时获取行索引和文本框值。目前,我得到了一些未定义的值。
HTML
<table class="table table-striped">
<thead>
<tr>
<th>Product</th>
<th>Price</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="text" class="form-control product">
</td>
<td>
<input type="text" oninput="javascript:GetValue(this);" class="form-control price">
</td>
</tr>
</tbody>
</table>
的JavaScript
function GetValue(oTextBox) {
var price = oTextBox.value;
var product = oTextBox.parent().prev().innerHTML.value;
var rowindex = oTextBox.closest('tr').index();
}
我收到此错误:
TypeError:oTextBox.parent不是函数 var product = oTextBox.parent()。prev()。innerHTML.value;
答案 0 :(得分:1)
用$(oTextBox)替换函数中的oTextBox然后你可以使用html()而不是innerHTML,就像这样
$(oTextBox).parent().prev().html()
答案 1 :(得分:1)
您需要在$中包装oTextBox
才能使用jQuery方法。这是因为oTextBox
...或... this
是一个DOM元素,而不是一个jQuery对象。因此:
var product = oTextBox.parent().prev().innerHTML.value;
应该是:
var product = $(oTextBox).parent().prev().find('input').val();
和
var rowindex = oTextBox.closest('tr').index();
应该是:
var rowindex = $(oTextBox).closest('tr').index();
<强> SUGGESTION 强>
我鼓励你不要使用内联JS:
<input type="text" class="form-control price">
然后你的jQuery将是:
$(function() {
$('input.price').on('input', function() {
var price = this.value;
var product = $(this).parent().prev().find('input').val();
var rowindex = $(this).closest('tr').index();
//....
});
});