使用jQuery中的Each()和Children()形成计算器

时间:2009-10-19 17:53:53

标签: javascript jquery forms

我正在尝试构建一个基于一系列带有字符串值的下拉框来计算总价格的表单,例如“此选项需要30英镑”我知道这不是理想的但是我把这个放在一起作为一个黑客现有脚本

在大多数情况下我已经开始工作但是我不知道如何为#productconfig的每个孩子运行每个函数

我可以手动将每个下拉列表输入到一个数组中并进行计算,但如果它只适用于#productconfig的所有子项

那么它会很好
<code>

<div id="#productconfig">
<label>Model Type</label> 
<select name="products[220][data][modeltype]" id="data-modeltype-220">
    <option value="M-Type £500">M-Type £500</option>
    <option value="P-Type £500">P-Type £500</option>
    <option value="S-Type £500">S-Type £500</option>
</select>   
</div>
</code>

<code>
$(document).ready(function() {
$("#productconfig").children().change(function () {
    calculateoptions();
});
calculateoptions();
});
</code>
<code>
function calculateoptions() {

var arr = ["data-modeltype-220"];

var total = 0;

jQuery.each(arr, function () {
    var str = $('#' + this).attr("value");
    var poundsign = str.indexOf('£');
    var poundsign = poundsign + 1;
    var lengthofstr = str.length;
    var shortstr = str.substr(poundsign, lengthofstr);
    total = eval(total) + eval(shortstr);
});

$('#price').html("£" + total);

}
</code>

2 个答案:

答案 0 :(得分:2)

这个怎么样:

function calculateoptions() {

var total = 0;

jQuery('#productconfig select').each(function () {
        total += $(this).val().match(/£(\d+)/)[1];
});

$('#price').html("£" + total);

}

答案 1 :(得分:0)

您可以使用:

 $("#productconfig select").each(function(){...});

选择产品配置div中的每个下拉列表。