2013-07-30 40 views
0

我有一個與table行這樣一個可變的量選擇不同類型的細胞內輸入:在.closest(「TR」)

<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'號碼輸入字段,我檢索父使用var hotelRoom = $(this).closest('tr');

,而我在那裏我通過了'tr'上述功能的容器tdtr,我需要得到以下幾點:

  • 在所述第一小區中的第二隱藏字段的與class="num-nights"
  • 數量輸入字段的值的值與class="num-qty-input"

這些都應該是整數,但它們返回如NaN的。我試着使用,以確定它們的價值:

  • var numbRooms = $(hotelRoom).find('input[type="number"]');

  • var numbNights = $(hotelRoom).find('.num-nights').val();

但他們似乎並沒有返回正確的值。這是一個有點雜亂的功能,也許我做了一些其他的錯誤。想知道您是否有更好的方法來檢索我正在查找的數據。

+1

你錯過截止'「'上的所有'name'屬性,這可能會使得'value'來,不能正確解析 – freejosh

+0

對不起你們錯字是不是在實際的代碼;只是在這裏轉錄;實際的代碼有點長,但爲了清晰我修剪它 - 在這個過程中,我錯過了這個報價;它沒有解決問題,但感謝指出無論如何 – unfulvio

回答

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); 
    }); 
}); 
+0

對不起,我實際上沒有copypaste我的實際代碼,因爲這是相當長的時間;在轉錄它時,我一定錯過了那個引號 - 謝謝指出,儘管我仍然沒有解決我的主要問題 – unfulvio

+0

@Fulvio檢查我的代碼...我看不到任何錯誤的方法你用過,但你沒有發佈你的實際JavaScript代碼,所以我寫了基於代碼就你所說的你做了什麼。 – saluce

+0

謝謝saluce - 實際上我的計算錯了,因爲我是在numbRooms = $(hotelRoom).find('input [type =「number」]')的末尾省略了.val;我在另一個var中尋找numbRooms.val,但是這並沒有工作,並且把計算搞亂了,因爲其中一個值返回了NaN。我擔心最近的('tr')不是一個安全的方法,但事實證明它已經足夠好了。再次感謝 – unfulvio