2011-01-26 35 views
0

我在思考如何通过jQuery将具有特定名称的所有输入值相加(如果它们的容器Div设置为显示块)。jQuery只乘以不隐藏的值

东西链接if ($('#product_' + this.alt).css('display','block')) {

然后,它需要与读取输入这样的事情加起来.each

$('#product_price_total_PRI_' + this.alt).val 

关于如何将所有这些放在一起的任何想法?

编辑:

很明显,我应该澄清。封装在多个复选框和单选按钮的alt标签中的是与隐藏容器和字段的ID相对应的ID。因此,检查的按钮和复选框的组合决定了隐藏区域的可见性,如此处所示。

function product_analysis_global() { 
$(':checked').each(function(){ 
    $('#product_' + this.alt).css('display','block'); 
    $('#product_quantity_PRI_' + this.alt).val(this.value); 
    var quantity = $('#product_quantity_PRI_' + this.alt).val(); 
    var price = $('#product_price_PRI_' + this.alt).val(); 
    var duration = $('#product_duration_PRI_' + this.alt).val(); 
    var dives = $('#product_dives_PRI_' + this.alt).val(); 
    var hire = $('#product_quantity_PRI_' + this.alt).val(); 

    $('#product_price_total_PRI_' + this.alt).val(price * quantity); 
    $('#product_duration_total_PRI_' + this.alt).val(duration * quantity); 
    $('#product_dives_total_PRI_' + this.alt).val(dives * quantity); 
    $('#product_hire_total_PRI_' + this.alt).val(hire * quantity); 

}); 

我需要的是一个名为“GT_grand_total”是所有字段区域'#product_price_total_PRI_' + this.alt).val()'只有在其面板'#product_' + this.alt是可见的总和领域。的

+0

我不知道你想在这里做什么。你为什么使用`this.alt`?这些领域是什么?你能显示你的HTML吗? – lonesomeday 2011-01-26 13:42:35

+0

加起来还是乘数?这是什么?考虑你自己的幸运,我不会投票严重措辞问题:) – 2011-01-26 13:42:39

回答

1

按您的要求

var arr = $("div[id*='product_']").not(":hidden").map(function(){ 
    return $(this).find("input[id*='product_price_total_PRI_']").val(); 
}).get(); 



var total = 0; 
$.each(arr,function() { 
    total += parseInt(this); 
}); 
alert(total); 

或者总

var total = eval(arr.join('+')); 

alert(total); 

工作实例

http://jsfiddle.net/wB5Hh/2/

1
var sum = 0; 
$("#specific_name_1, #specific_name_2").not(":hidden").each(function(){ 
    var i = parseInt($(this).val(), 10); 
    if(i){ 
     sum += i; 
    } 
}); 
$("#grand_total").val(sum); 

定义:隐藏选择 http://api.jquery.com/hidden-selector/