2013-11-04 74 views
0

我有一張這樣的桌子。導航DOM,如何恢復?

<table id="order-table"> 
    <tr class="row-header"> 
     <td style="width: 80px;">Line #</td> 
     <td style="width: 100px;">ID #</td> 
     <td style="width: 50px;">Qty</td> 
     <td style="width: 100px;">Desc</td> 
     <td style="width: 100px;">ABC8</td> 
     <td style="width: 100px;">UPC</td> 
     <td style="width: 100px;">NDC</td> 
    </tr> 
    <tr class="row"> 
     <td style="width: 80px;"><input class="row-target" readonly tabindex="-1" style="width: 80px; background: lightgray" type="text" value="10"></td> 
     <td style="width: 100px;"><input class="id-target" style="width: 100px;" type="text" /></td> 
     <td style="width: 50px;"><input class="qty-target" style="width: 50px;" type="text" /></td> 
     <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td> 
     <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td> 
     <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td> 
     <td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td> 
    </tr> 
</table> 

和一些jQuery的是這樣的:

function checkIdTarget(rownum) { 
    if ($(this).val().length === 8) { 
     var rownum = $(this).parent("td").children(".row-target").val(); 
     alert (rownum); 
     var newrow = '<tr class="row"><td style="width: 80px;"><input class="row-target" readonly tabindex="-1" style="width: 80px; background: lightgray" type="text" value="' + rownum + '"></td><td style="width: 100px;"><input class="id-target" style="width: 100px;" type="text" /></td><td style="width: 50px;"><input class="qty-target" style="width: 50px;" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td><td style="width: 100px;"><input readonly tabindex="-1" style="width: 100px; background: lightgray" type="text" /></td></tr>'; 
     $(newrow).insertAfter($(this).parents("tr")); 
     $("#button-submit-order").button("enable"); 
    } 
    if ($(this).val().length > 8) { 
     var x = $(this).val(); 
     $(this).val(x.slice(0, -1)); 
     $(this).effect("shake"); 
    } 
    if (isNaN($(this).val())) { 
     var x = $(this).val(); 
     $(this).val(x.slice(0, -1)); 
     $(this).effect("shake"); 
    } 
} 

我想抓住從相對於它我打電話this當前ID框row-target類的輸入框中的值。未定義的值回來了。我究竟做錯了什麼?

+2

什麼checkIdTarget必然? – Quentin

+0

如果'this'是'id-target'元素,那麼'$(this).parent()。prev()。find('input')' –

+0

你正在選擇同一個TD的孩子,這' - 我認爲輸入字段 - 位於,這是行不通的...你需要去1級,而不是 - 父母'('TD')父母('TR')' –

回答

0

在你的第三個JQuery的線,你應該寫下面的代碼:

var rownum = $(this).closest("td").find(".row-target").val();