2014-11-11 3 views
0

Я хочу удалить цену из корзины, используя кнопку очистки. Я могу удалить строки/продукты, но я не уверен, почему цена не меняется. Пожалуйста, проверьте codepen.Почему кнопка очистки не выбрана из корзины

function removecart() { 
    salesTotal = 0; 
    var table = document.getElementById("shoppingCart"); 
    for(var i = table.rows.length - 1; i > -1; i--){ 
     table.deleteRow(i); 
    } 
} 

Спасибо за любую помощь

+0

вы не обновляя ид = общее Div со значением 0, поэтому. – BeNdErR

ответ

0

Помимо изменения вашего salesTotal переменной к нулю, вам необходимо обновить представление дисплея соответственно. Вы можете легко добавить следующее:

function removecart() { 
    salesTotal = 0; 
    var table = document.getElementById("shoppingCart"); 
    for(var i = table.rows.length - 1; i > -1; i--){ 
     table.deleteRow(i); 
    } 
    document.getElementById('total').innerHTML = "<strong>Sale Price</strong>: $" + salesTotal.toFixed(2); 
} 

Но вы также можете реализовать другую функцию, чтобы автоматизировать эту функцию и не писать repeatidly один и тот же код в ваших ЯШ:

+0

Я вижу снова использование innerHTML. Я думал, что использование salestotal = 0 будет иметь тот же эффект. –

+0

Установив свойство 'innerHTML', вы, к сожалению, не устанавливаете прямую привязку к переменной. Структуры MVC, такие как AngularJS, позволяют такую ​​процедуру, но они приносят много накладных расходов, поэтому на данный момент ваша выборка будет такой простой, как упомянутая выше. – Daniel

0

Ваша цена не меняется, потому что вы не меняете его. Добавить к функции:

document.getElementById("total").innerHTML = salesTotal; 
+2

Не можете ли вы просто удалить ответ, а не редактировать его во что-то, что не имеет никакого смысла ...? –

0

Кнопка ясно ли удалить цену с тележкой, но он не показывает, потому что вы никогда не писали код, чтобы обновить его.

function removecart() { 
    salesTotal = 0; 
    var table = document.getElementById("shoppingCart"); 
    for(var i = table.rows.length - 1; i > -1; i--) 
    { 
     table.deleteRow(i); 
    } 
     document.getElementById('total').innerHTML = "<strong>Sale Price</strong>: $" +  salesTotal.toFixed(2); 
    } 

должен работать

Смежные вопросы