我有一个表
,其行数可变,如下所示:
<tr class"hotel-room">
<td class="cell1">
<input type="hidden" class="hotel-id" name="input_01[label][row][progressive][id]" value="5893" />
<input type="hidden" class="num-nights" name="input_01[label][row][progressive][nights]" value="2" />
<select class="room-selection" name="input_01[label][row][progressive][]">
<option value="etc"...>...options...</option>
</select>
</td>
<td class="cell2">
<input type="number" class="room-qty-input" name="input_01[label][row][progressive][]" />
</td>
<td class="cell3">
<input type="text" class="room-price" name="input_01[label][row][progressive][]" />
</td>
<td class="buttons">
stuff not relevant (two imgs, some text, more markup...)
</td>
</tr>
当我在 'room-qty-input'
数字输入字段内时,我使用以下命令检索容器 td
的父 tr
var hotelRoom = $(this).closest('tr');
虽然我是一个传递了上面的 'tr'
的函数,但我需要获取以下内容:
- 第一个单元格中第二个隐藏字段的值
class="num-nights"
class="num-qty-input"
的数字输入字段的值
这些应该是整数,但它们返回为 NaN。我尝试使用以下方法确定它们的值:
var numbRooms = $(hotelRoom).find('input[type="number"]');
或
var numbNights = $(hotelRoom).find('.num-nights').val();
但它们似乎没有返回正确的值。这是一个有点困惑的函数,也许我做错了什么。想知道您是否有更好的方法来检索我正在寻找的数据。
最佳答案
将您所说的内容插入 jsbin ,我看不出有什么问题。
$(document).ready(function () {
$("input.room-qty-input")
.on('focus', function () {
var hotelRoom = $(this).closest('tr');
var numbNights = hotelRoom.find('.num-nights').val();
if (isNaN(numbNights)) console.log('NaN'); else console.log('is number');
console.log(this, hotelRoom, numbNights);
});
});
关于javascript - 在 .closest ('tr' 中的单元格内选择不同类型的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17955562/