所以我的购物车有些问题。一些jQuery问题,我想知道是否有人可以指出我正确的方向。
事实是,我试图让购物车更具动感,如果您勾选一个复选框,该商品会被添加到购物车中,并显示该商品的总价格和折扣。
只是遇到了复选框部分的问题。
$(document).ready(function($){
$('#cart_listing .quantity').change(function (event) {
$quan = $(this);
console.log($quan.parent().next()[0]);
$quan.parent().next().find('.price').text(function () {
return $quan.val() * parseInt($(this).attr('data-val'), 10) + ' €';
});
var total = 0;
$('#cart_listing .price').each(function(k, v){
total += parseFloat($(v).text(), 10);
});
$('#cart_listing .faster').text(function () {
faster = parseInt($(this).attr('data-val'), 10);
return $(this).attr('data-val' + ' €');
});
var discount_pct = parseInt($("#cart_listing .discount").data("val"), 10);
var discount = -(total * discount_pct/100);
$('#cart_listing .discounted').text('-' + -discount + ' €');
$('#cart_listing #total').text(total + discount + faster + ' €')
});
});
jsFiddle:http://jsfiddle.net/ooh43u6t/
答案 0 :(得分:1)
我无法正确理解您的问题,但我认为您希望在使用jQuery检查时为复选框添加值。
$('input[type=checkbox]').click(function(){
if($(this).is(':checked')){ //use this to see if the checkbox is checked or not
//do something...
}
});
我不知道你是否想要这样的东西。如果没有,你能澄清更多吗?谢谢!
编辑:
所以,你基本上使用同样的东西,或许是这样的,
if($(this).is(':checked')){
console.log($(this).parent('td').siblings('td').html()); // check this, you'll have the item name. (the first td)
console.log($(this).attr('data-val')); // this will have the value on the "data-val" attribute on your checkbox
}
所以,现在你有了产品的名称(第1个日志)和价格(第2个日志)。
现在请记住,这只有在格式保持一致时才有效,而且不是做一般的input[type=checkbox]
,你可能想要给所有产品复选框一个唯一的类,所以它不会。 t会干扰您可能拥有的其他复选框。希望这可以帮助。如果没有,我很乐意回答更多。谢谢!