我有一个在服务器端创建的div列表,每个列表都有价格,数量(由用户输入)和名称。我设法使用jQuery来计算每一个的总数并将它们相加。
我现在想做的是逐行列出在我的文本区域中具有值的每个项目的名称,数量和总数。
到目前为止,我有以下内容(其附加部分当前不起作用):
$(document).ready(function () {
$(".product-row input").change(multInputs);
function multInputs() {
var mult = 0;
// for each row:
$("div.product-row").each(function () {
// get the values from this row:
var $price = $('.price', this).html();
var $quantity = $('.quantity', this).val();
var $total = ($price * 1) * ($quantity * 1);
// set total for the row
$('.multTotal',this).text($total);
mult += $total;
$('#textarea',this).append($name).append($total);
});
$("#total").html(mult);
}
});
如果我能解决这个问题,我很确定我可以解决每次更改某些内容时如何添加总计并清除文本区域(我不是要找人来完成所有工作)。
对于为什么我的textarea没有填充的任何反馈,将不胜感激。
编辑:该解决方案,由braks真正很好地解释了以下结果(工作!)代码:
$(document).ready(function () {
$(".product-row input").change(multInputs);
function multInputs() {
var mult = 0;
// for each row:
$("div.product-row").each(function () {
// get the values from this row:
var price = $('.price', this).html();
var quantity = $('.quantity', this).val();
var name = $('.name', this).html();
var total = (price * 1) * (quantity * 1);
// set total for the row
$('.multTotal',this).text(total);
mult += total;
$('#textarea').val($('#textarea').val() + ' ' + name + ' ' + total);
});
$("#total").html(mult);
}
});
$(textarea).append(txt)无法正常工作。加载页面时,将设置文本区域内的文本节点的表单字段的值。之后,可以断开文本节点和值。在字段中键入内容时,值会更改,但是DOM中它里面的文本节点不会更改。然后,使用append()更改文本节点,浏览器将删除该值,因为它知道标记内的文本节点已更改。
因此,您想要设置值,而不想追加。为此使用jQuery的val()方法。
您必须使用类似 $('#textarea').val($('#textarea').val() + ' ' + $name + ' ' + $total);
除非我不确定为什么将$放入变量中,然后将其与PHP混合使用?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句