2014-11-03 65 views
0

我想要的是當型號改變時,價格的價值會改變。爲了得到價格,我需要ID號碼和數量。jQuery獲取輸入:nth-​​child(n)的值不起作用

所以我得到這個HTML代碼:

<div class="col-sm-9 topnav"> 
    <span>                
     <input name="prodid[]" type="text" id="form-field-icon-1" class="input-small" placeholder="Product ID" /> 
    </span> 
    <span> 
     <input name="model[]" type="text" id="form-field-icon-2" class="input-small" onchange="getprice($(this));"placeholder="Model" /> 
    </span> 
    <span> 
     <input name="qty[]" type="text" id="form-field-icon-3" class="input-small" placeholder="Quantity" /> 
    </span> 
     <input name="price[]" type="text" id="form-field-icon-2" class="input-small" placeholder="Price" readonly="readonly" />                
    <span> 
     <button class="btn btn-minier btn-yellow">Add</button> 
    </span> 
</div> 

JS代碼:

function getprice(thisObj) { 
    var prodid = thisObj.closest('div').children().children("input:first").val(); 
    var modelid = thisObj.val(); 
    var qty = thisObj.closest('div').children().children("input:nth-child(2)").val(); 
} 

數量的值,我得到的是不確定的,但是當我改變了第n個孩子到1,我得到我輸入的價值。在我的console.log中,有一個值。 背景:輸入#form-field-icon-2.input-small

非常感謝您的幫助!

回答

2

因爲input是其母公司span的第一個孩子。

你需要

var qty = thisObj.closest('div').children(':nth-child(3)').children("input").val(); 

或最簡單的方法是通過它的名字找到輸入

var qty = thisObj.closest('div').find('input[name="qty[]"]').val(); 
+0

我會嘗試,後來非常感謝! :) – bless1204 2014-11-03 05:40:22

0

解決它!

var test = thisObj.closest('div').children().children("input:nth-child(1)"); 
var model = $(test[1]).val(); 

我能夠得到我所需要的東西。 :)

0

沒有<input>索引2在你提供的標記。

如果你想獲得第二個div類= 「COL-SM-9 topnav」 裏面那麼簡單的做到這些:

var second = $("div.topnav input")[1]; 
0
function getprice(thisObj) { 
    var prodid = thisObj.closest('div').children().children("input:first").val(); 
    var modelid = thisObj.val(); 
    var qty = thisObj.closest('div').children().children("input:eq(1)").val(); 
} 

試試這個