我正在尝试创建一个简单的食品车;选项,即小,中,大和额外的,即奶酪,洋葱,辣椒。
我有一个计算数量的脚本,但是该脚本在每个食物项目的 while 循环内,我在使每个脚本调用都独一无二时遇到了一些困难。
这是我到目前为止所拥有的:http: //jsfiddle.net/2F8LA/1/
我尝试在 PHP 和 JS 中的每个 id 旁边使用 echo $testnumber 来使它们独一无二,但是它不起作用。想我有点过头了:)
请问如何使每个循环都独一无二?提前致谢。
<?php
$testnumber = 5;
?>
<?php do { ?>
<?php $testnumber -= 1;?>
<hr />
<div>
<div>
<select id="options" name="options" class="options">
<option value="10.00">$10.00</option>
<option value="20.50">$20.50</option>
<option value="30.80">$30.80</option>
</select><span style="margin-left:30px;">TOTAL: $<span id="totalamount"> </span></span>
</div>
<br />
<div>
<input type="checkbox" name="extra" value="0.50" />$0.50
<input type="checkbox" name="extra" value="1.50" />$1.50
<input type="checkbox" name="extra" value="0.80" />$0.80
</div>
</div><br />
<script type="text/javascript">
// for adding the options and extras
function displayVals() { // get option value
calcUsage();
var singleValues = $("#options").val();
}
var $cbs = $('input[name="extra"]');
function calcUsage() {
var total = $("#options").val();
$cbs.each(function() {
if(this.checked)
total = (parseFloat(total) + parseFloat(this.value)).toFixed(2);
});
$("#totalamount").text(total); // display total
}
$("#options").change(displayVals);
displayVals();
//For checkboxes
$cbs.click(calcUsage);
</script>
<?php }while($testnumber > 0); ?>
<hr />
谢谢哦,我现在有以下代码,但是,我不明白如何将“displayVals(ele)”连接到“displayVals($(this))”对不起,我是 Jquery/Javascript 的新手。
如果您没有时间解释,我理解,但是,如果您有某个地方的链接,我可以了解这意味着什么,那就太好了。
<head>
<script type="text/javascript" src="scripts/jquery/js/jquery-1.9.1.js"></script>
<script type="text/javascript">
$(function(){
$(document).on('change', 'select[name^=options]', function(){
displayVals($(this));
});
$(document).on('click', 'input[name^=extra]', function(){
calcUsage($(this));
});
});
</script>
</head>
<?php $testnumber = 5; ?>
<?php do { ?>
<?php $testnumber -= 1; ?>
<hr />
<div>
<div>
<select id="options" name="options-<?php echo $testnumber; ?>" class="options">
<option value="10.00">$10.00</option>
<option value="20.50">$20.50</option>
<option value="30.80">$30.80</option>
</select><span style="margin-left:30px;">TOTAL: $<span id="totalamount-<?php echo $testnumber; ?>"> </span></span>
</div>
<br />
<div>
<input type="checkbox" name="extra-<?php echo $testnumber; ?>[]" value="0.50" />$0.50
<input type="checkbox" name="extra-<?php echo $testnumber; ?>[]" value="1.50" />$1.50
<input type="checkbox" name="extra-<?php echo $testnumber; ?>[]" value="0.80" />$0.80
</div>
</div><br />
<script type="text/javascript">
function displayVals(ele) { // get option value
calcUsage(ele);
var singleValues = ele.val();
}
function calcUsage(ele) {
var total = ele.val(),
$cbs = ele.parent().parent().find('input[name="^extra"]'),
cnt = cbs.prop('name').split('-')[1]; // the iteration number
$cbs.each(function() {
if(this.checked) total = (parseFloat(total) + parseFloat(this.value)).toFixed(2);
});
$("#totalamount-"+cnt).text(total); // display total
}
</script>
<?php }while($testnumber > 0); ?>
<hr />