0

我有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容器的父级tdvar 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();

但它们似乎没有返回正确的值。这是一个有点混乱的功能,也许我做错了什么。想知道您是否有更好的方法来检索我正在寻找的数据。

4

1 回答 1

2

将你所说的插入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);
    });
});
于 2013-07-30T19:33:57.043 回答