2015-09-25 29 views
1

最近輸入的值,我有這樣的HTML:jQuery的增加不確定

<div class="tiny-up-down-wrapper"> 
    <div class="minus">-</div> 
    <div class="counter"> 
     <input class="count" type="text" value="0" /> 
    </div> 
</div> 

這jQuery的:

jQuery('.tiny-up-down-wrapper .minus').click(function() { 
    var theVal = jQuery(this).closest('input').val(); 
    alert(theVal); 
}); 

這個問題是該警示快到了我們undefined。我怎樣才能解決這個問題?

+1

[RTFM(http://api.jquery.com/closest/)。 _「對於集合中的每個元素,通過測試元素本身並遍歷DOM樹中的祖先,獲取匹配選擇器的第一個元素。」通常,通過組合[樹遍歷函數]( http://api.jquery.com/category/traversing/tree-traversal/)。 –

回答

3

的問題是因爲closest()用於查找最近的父元素,而input是同級的.minus元素的子元素。相反,您可以使用closest()以獲得最近的.tiny-up-down-wrapper,然後find()以獲得input。試試這個:

$('.tiny-up-down-wrapper .minus').click(function() { 
    $(this).closest('.tiny-up-down-wrapper').find('input').val(); 
    alert(theVal); 
}); 

要真正減少數值,你可以這樣做:

$('.tiny-up-down-wrapper .minus').click(function() { 
    $(this).closest('.tiny-up-down-wrapper').find('input').val(function(i, v) { 
     return --v; 
    }); 
}); 

Example fiddle

+0

剛剛測試了底部代碼以減少並沒有任何反應......任何想法爲什麼? – Nutz24

+0

我的錯誤。我更新了答案併爲您添加了一個示例。 –

+0

太棒了!謝謝 :) – Nutz24