我有一个table
,行数可变,如下所示:
<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'
数字输入字段中时,我使用tr
检索容器td
的父级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);
});
});