2014-02-07 121 views
1

如何使用javascript獲取html中的下一個元素?

我有三個

<input type="number" class="number" > 

HTML和腳本是這樣的:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
var limite = <?php echo str_replace('"', '&quot;', trim($row["tot_costi_fissi_struttura"])) ?>; 
var somma; 
var val; 

$(".number").change(function(){ 
val = parseFloat($(this).val()); 

somma = 0; 
$(".number").each(function(){ 
somma += parseFloat($(this).val()); 
}); 
var resto = limite - somma > 0 ? limite - somma : 0; 
$("#limite").html(resto); 
if(somma > limite){ 
var diff = somma - limite; 
$(this).val(val - diff); 
} 


}) 
}); 

我需要得到的不僅是當前元素,也是下一個。

我已經試過這樣:

valnext = parseFloat($(this).next().val()); 

,但它不提前工作

感謝

+5

請千萬不要在一個文件中^^ – Dwza

+1

他們需要的兄弟姐妹爲工作混合HTML,PHP和JavaScript - - 是否有任何東西包裝每個輸入,以便他們是「堂兄弟」而不是兄弟姐妹? – Faust

+1

提供您的HTML代碼... –

回答

1

如果項目位於DOM中的任意位置,則可以使用jQuery.index。假設我們有三個項目.number和第二的一個改變,則:

var $this = $(this),    // this element 
    $that = $(".number"),  // group of element to which this element belongs 
    index = $that.index($this), // index of this in that group 
    $next = $that.eq(index + 1); // next element in that group 
           // note that .eq silently returns empty jquery 
           // object if out of bounds index is specified 

Demo here

+0

+1我認爲這將工作 –

+0

只是問好奇..爲什麼不''(this).next()'? –

+0

@Mr_Green:OP提到'$(this).next()'不工作,所以很可能它們不是兄弟姐妹。 –

1

取決於類型,以獲得一個文本使用類型:

$(this).next().text();