const DATA = { list: [ { name: '第1项', checked: false, num: 1, price: 100, }, { name: '第2项', checked: false, num: 2, price: 650, }, { name: '第3项', checked: false, num: 5, price: 300, } ] } $(function () { var $list = $('#js-list') var $price = $('.js-select-price') var $num = $('.js-select-num') var list = DATA.list function toPrice(fen) { return (fen / 100).toFixed(2) } function selectedItem() { return list.filter(item => item.checked) } function selectedCount() { return selectedItem().reduce((pre, cur) => pre + cur.num, 0) } function selectedPrice() { return selectedItem().reduce((pre, cur) => pre + cur.num * cur.price, 0) } function updateUI() { var count = selectedCount() $price.text(toPrice(selectedPrice())) $num.text(selectedCount()) $('.alert')[count === 0 ? 'show' : 'hide']() } $list.append(list.map((item, i) => `