{"id":9436,"date":"2024-01-10T18:02:00","date_gmt":"2024-01-10T18:02:00","guid":{"rendered":"https:\/\/codehim.com\/?p=9436"},"modified":"2024-01-22T16:03:37","modified_gmt":"2024-01-22T11:03:37","slug":"simple-budget-calculator-javascript","status":"publish","type":"post","link":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/","title":{"rendered":"Simple Budget Calculator in JavaScript"},"content":{"rendered":"<p>This code creates a simple budget calculator in JavaScript. It allows you to manage your finances by tracking your income and expenses. The major functionality includes adding and deleting items (income and expenses), calculating your budget, and displaying the percentages of expenses relative to income. It&#8217;s a helpful tool for maintaining control over your finances.<\/p>\n<p>You can use this code to add a budget management feature to your e-commerce or finance website.<\/p>\n<h2>How to Create a Simple Budget Calculator JavaScript<\/h2>\n<p>1. First of all, load the <a href=\"https:\/\/ionic.io\/ionicons\/usage\" target=\"_blank\" rel=\"noopener\">Ionicons CSS<\/a> by adding the following CDN link into the head tag of your HTML document.<\/p>\n<pre class=\"prettyprint linenums lang-html\"> &lt;link href=\"http:\/\/code.ionicframework.com\/ionicons\/2.0.1\/css\/ionicons.min.css\" rel=\"stylesheet\" type=\"text\/css\"&gt;<\/pre>\n<p>2. Create the HTML structure for the budget calculator as follows:<\/p>\n<pre class=\"prettyprint linenums lang-html\">&lt;div class=\"top\"&gt;\r\n    &lt;div class=\"budget\"&gt;\r\n      &lt;div class=\"budget__title\"&gt;\r\n        Available Budget in &lt;span class=\"budget__title--month\"&gt;%Month%&lt;\/span&gt;:\r\n      &lt;\/div&gt;\r\n\r\n      &lt;div class=\"budget__value\"&gt;+ 2,345.64&lt;\/div&gt;\r\n\r\n      &lt;div class=\"budget__income clearfix\"&gt;\r\n        &lt;div class=\"budget__income--text\"&gt;Income&lt;\/div&gt;\r\n        &lt;div class=\"right\"&gt;\r\n          &lt;div class=\"budget__income--value\"&gt;+ 4,300.00&lt;\/div&gt;\r\n          &lt;div class=\"budget__income--percentage\"&gt;&amp;nbsp;&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n\r\n      &lt;div class=\"budget__expenses clearfix\"&gt;\r\n        &lt;div class=\"budget__expenses--text\"&gt;Expenses&lt;\/div&gt;\r\n        &lt;div class=\"right clearfix\"&gt;\r\n          &lt;div class=\"budget__expenses--value\"&gt;- 1,954.36&lt;\/div&gt;\r\n          &lt;div class=\"budget__expenses--percentage\"&gt;45%&lt;\/div&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n  &lt;\/div&gt;\r\n\r\n\r\n\r\n  &lt;div class=\"bottom\"&gt;\r\n    &lt;div class=\"add\"&gt;\r\n      &lt;div class=\"add__container\"&gt;\r\n        &lt;select class=\"add__type\"&gt;\r\n          &lt;option value=\"inc\" selected&gt;+&lt;\/option&gt;\r\n          &lt;option value=\"exp\"&gt;-&lt;\/option&gt;\r\n        &lt;\/select&gt;\r\n        &lt;input type=\"text\" class=\"add__description\" placeholder=\"Add description\"&gt;\r\n        &lt;input type=\"number\" class=\"add__value\" placeholder=\"Value\"&gt;\r\n        &lt;button class=\"add__btn\"&gt;&lt;i class=\"ion-ios-checkmark-outline\"&gt;&lt;\/i&gt;&lt;\/button&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n    &lt;div class=\"container clearfix\"&gt;\r\n      &lt;div class=\"income\"&gt;\r\n        &lt;h2 class=\"income__title\"&gt;Income&lt;\/h2&gt;\r\n\r\n        &lt;div class=\"income__list\"&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n\r\n\r\n\r\n      &lt;div class=\"expenses\"&gt;\r\n        &lt;h2 class=\"expenses__title\"&gt;Expenses&lt;\/h2&gt;\r\n\r\n        &lt;div class=\"expenses__list\"&gt;\r\n        &lt;\/div&gt;\r\n      &lt;\/div&gt;\r\n    &lt;\/div&gt;\r\n\r\n\r\n  &lt;\/div&gt;\r\n<\/pre>\n<p>3. Style the budget calculator using the following CSS styles. You can customize the styles to match your website&#8217;s design. Modify the CSS code as needed to achieve the desired look and feel.<\/p>\n<pre class=\"prettyprint linenums lang-css\">\/**********************************************\r\n*** GENERAL\r\n**********************************************\/\r\n@import url(\"https:\/\/fonts.googleapis.com\/css?family=Open+Sans:400,400i,700\");\r\n\r\n* {\r\n    margin: 0;\r\n    padding: 0;\r\n    box-sizing: border-box;\r\n}\r\n\r\n.clearfix::after {\r\n    content: \"\";\r\n    display: table;\r\n    clear: both;\r\n}\r\n\r\nbody {\r\n    color: #555;\r\n    font-family: Open Sans;\r\n    font-size: 16px;\r\n    position: relative;\r\n    height: 100vh;\r\n    font-weight: 400;\r\n}\r\n\r\n.right { float: right; }\r\n.red { color: #FF5049 !important; }\r\n.red-focus:focus { border: 1px solid #FF5049 !important; }\r\n\r\n\/**********************************************\r\n*** TOP PART\r\n**********************************************\/\r\n\r\n.top {\r\n    height: 40vh;\r\n    background-image: linear-gradient(#5f061e, #184c4d);\r\n    background-size: cover;\r\n    background-position: center;\r\n    position: relative;\r\n}\r\n\r\n.budget {\r\n    position: absolute;\r\n    width: 350px;\r\n    top: 50%;\r\n    left: 50%;\r\n    transform: translate(-50%, -50%);\r\n    color: #fff;\r\n}\r\n\r\n.budget__title {\r\n    font-size: 18px;\r\n    text-align: center;\r\n    margin-bottom: 10px;\r\n    font-weight: 300;\r\n}\r\n\r\n.budget__value {\r\n    font-weight: 300;\r\n    font-size: 46px;\r\n    text-align: center;\r\n    margin-bottom: 25px;\r\n    letter-spacing: 2px;\r\n}\r\n\r\n.budget__income,\r\n.budget__expenses {\r\n    padding: 12px;\r\n    text-transform: uppercase;\r\n}\r\n\r\n.budget__income {\r\n    margin-bottom: 10px;\r\n    background-color: #28B9B5;\r\n}\r\n\r\n.budget__expenses {\r\n    background-color: #FF5049;\r\n}\r\n\r\n.budget__income--text,\r\n.budget__expenses--text {\r\n    float: left;\r\n    font-size: 13px;\r\n    color: #444;\r\n    margin-top: 2px;\r\n}\r\n\r\n.budget__income--value,\r\n.budget__expenses--value {\r\n    letter-spacing: 1px;\r\n    float: left;\r\n}\r\n\r\n.budget__income--percentage,\r\n.budget__expenses--percentage {\r\n    float: left;\r\n    width: 34px;\r\n    font-size: 11px;\r\n    padding: 3px 0;\r\n    margin-left: 10px;\r\n}\r\n\r\n.budget__expenses--percentage {\r\n    background-color: rgba(255, 255, 255, 0.2);\r\n    text-align: center;\r\n    border-radius: 3px;\r\n}\r\n\r\n\r\n\/**********************************************\r\n*** BOTTOM PART\r\n**********************************************\/\r\n\r\n\/***** FORM *****\/\r\n.add {\r\n    padding: 14px;\r\n    border-bottom: 1px solid #e7e7e7;\r\n    background-color: #f7f7f7;\r\n}\r\n\r\n.add__container {\r\n    margin: 0 auto;\r\n    text-align: center;\r\n}\r\n\r\n.add__type {\r\n    width: 55px;\r\n    border: 1px solid #e7e7e7;\r\n    height: 44px;\r\n    font-size: 18px;\r\n    color: inherit;\r\n    background-color: #fff;\r\n    margin-right: 10px;\r\n    font-weight: 300;\r\n    transition: border 0.3s;\r\n}\r\n\r\n.add__description,\r\n.add__value {\r\n    border: 1px solid #e7e7e7;\r\n    background-color: #fff;\r\n    color: inherit;\r\n    font-family: inherit;\r\n    font-size: 14px;\r\n    padding: 12px 15px;\r\n    margin-right: 10px;\r\n    border-radius: 5px;\r\n    transition: border 0.3s;\r\n}\r\n\r\n.add__description { width: 400px;}\r\n.add__value { width: 100px;}\r\n\r\n.add__btn {\r\n    font-size: 35px;\r\n    background: none;\r\n    border: none;\r\n    color: #28B9B5;\r\n    cursor: pointer;\r\n    display: inline-block;\r\n    vertical-align: middle;\r\n    line-height: 1.1;\r\n    margin-left: 10px;\r\n}\r\n\r\n.add__btn:active { transform: translateY(2px); }\r\n\r\n.add__type:focus,\r\n.add__description:focus,\r\n.add__value:focus {\r\n    outline: none;\r\n    border: 1px solid #28B9B5;\r\n}\r\n\r\n.add__btn:focus { outline: none; }\r\n\r\n\/***** LISTS *****\/\r\n.container {\r\n    width: 1000px;\r\n    margin: 60px auto;\r\n}\r\n\r\n.income {\r\n    float: left;\r\n    width: 475px;\r\n    margin-right: 50px;\r\n}\r\n\r\n.expenses {\r\n    float: left;\r\n    width: 475px;\r\n}\r\n\r\nh2 {\r\n    text-transform: uppercase;\r\n    font-size: 18px;\r\n    font-weight: 400;\r\n    margin-bottom: 15px;\r\n}\r\n\r\n.income__title { color: #28B9B5; }\r\n.expenses__title { color: #FF5049; }\r\n\r\n.item {\r\n    padding: 13px;\r\n    border-bottom: 1px solid #e7e7e7;\r\n}\r\n\r\n.item:first-child { border-top: 1px solid #e7e7e7; }\r\n.item:nth-child(even) { background-color: #f7f7f7; }\r\n\r\n.item__description {\r\n    float: left;\r\n}\r\n\r\n.item__value {\r\n    float: left;\r\n    transition: transform 0.3s;\r\n}\r\n\r\n.item__percentage {\r\n    float: left;\r\n    margin-left: 20px;\r\n    transition: transform 0.3s;\r\n    font-size: 11px;\r\n    background-color: #FFDAD9;\r\n    padding: 3px;\r\n    border-radius: 3px;\r\n    width: 32px;\r\n    text-align: center;\r\n}\r\n\r\n.income .item__value,\r\n.income .item__delete--btn {\r\n    color: #28B9B5;\r\n}\r\n\r\n.expenses .item__value,\r\n.expenses .item__percentage,\r\n.expenses .item__delete--btn {\r\n    color: #FF5049;\r\n}\r\n\r\n\r\n.item__delete {\r\n    float: left;\r\n}\r\n\r\n.item__delete--btn {\r\n    font-size: 22px;\r\n    background: none;\r\n    border: none;\r\n    cursor: pointer;\r\n    display: inline-block;\r\n    vertical-align: middle;\r\n    line-height: 1;\r\n    display: none;\r\n}\r\n\r\n.item__delete--btn:focus { outline: none; }\r\n.item__delete--btn:active { transform: translateY(2px); }\r\n\r\n.item:hover .item__delete--btn { display: block; }\r\n.item:hover .item__value { transform: translateX(-20px); }\r\n.item:hover .item__percentage { transform: translateX(-20px); }\r\n\r\n\r\n.unpaid {\r\n    background-color: #FFDAD9 !important;\r\n    cursor: pointer;\r\n    color: #FF5049;\r\n\r\n}\r\n\r\n.unpaid .item__percentage { box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.1); }\r\n.unpaid:hover .item__description { font-weight: 900; }<\/pre>\n<p>4. Finally, add the following JavaScript code to your web\/app project. It provides the essential logic for a budget management application. It allows users to track their income and expenses, calculate their budget, and view expense percentages.<\/p>\n<pre class=\"prettyprint linenums lang-js\">var budgetController = (function () {\r\n\r\n  var Expense = function (id, description, value) {\r\n    this.id = id;\r\n    this.description = description;\r\n    this.value = value;\r\n    this.percentage = -1;\r\n  };\r\n\r\n  Expense.prototype.calcPercentage = function (totalIncome) {\r\n    if (totalIncome &gt; 0) {\r\n      this.percentage = Math.round((this.value \/ totalIncome) * 100);\r\n    } else {\r\n      this.percentage = -1;\r\n    }\r\n  };\r\n\r\n  Expense.prototype.getPercentage = function () {\r\n    return this.percentage;\r\n  };\r\n\r\n  var Income = function (id, description, value) {\r\n    this.id = id;\r\n    this.description = description;\r\n    this.value = value;\r\n  };\r\n\r\n  var calculateTotal = function (type) {\r\n    var sum = 0;\r\n    data.allItems[type].forEach(function (cur) {\r\n      sum += cur.value;\r\n    });\r\n    data.totals[type] = sum;\r\n  };\r\n\r\n  var data = {\r\n    allItems: {\r\n      exp: [],\r\n      inc: []\r\n    },\r\n    totals: {\r\n      exp: 0,\r\n      inc: 0\r\n    },\r\n    budget: 0,\r\n    percentage: -1\r\n  };\r\n\r\n  return {\r\n    addItem: function (type, des, val) {\r\n      var newItem, ID;\r\n      if (data.allItems[type].length &gt; 0) {\r\n        ID = data.allItems[type][data.allItems[type].length - 1].id + 1;\r\n      } else {\r\n        ID = 0;\r\n      }\r\n      if (type === 'exp') {\r\n        newItem = new Expense(ID, des, val);\r\n      } else if (type === 'inc') {\r\n        newItem = new Income(ID, des, val);\r\n      }\r\n      data.allItems[type].push(newItem);\r\n      return newItem;\r\n    },\r\n\r\n\r\n    deleteItem: function (type, id) {\r\n      var ids, index;\r\n      ids = data.allItems[type].map(function (current) {\r\n        return current.id;\r\n      });\r\n\r\n      index = ids.indexOf(id);\r\n\r\n      if (index !== -1) {\r\n        data.allItems[type].splice(index, 1);\r\n      }\r\n\r\n    },\r\n\r\n\r\n    calculateBudget: function () {\r\n      calculateTotal('exp');\r\n      calculateTotal('inc');\r\n\r\n      data.budget = data.totals.inc - data.totals.exp;\r\n\r\n      if (data.totals.inc &gt; 0) {\r\n        data.percentage = Math.round((data.totals.exp \/ data.totals.inc) * 100);\r\n      } else {\r\n        data.percentage = -1;\r\n      }\r\n    },\r\n\r\n    calculatePercentages: function () {\r\n      data.allItems.exp.forEach(function (cur) {\r\n        cur.calcPercentage(data.totals.inc);\r\n      });\r\n    },\r\n\r\n    getPercentages: function () {\r\n      var allPerc = data.allItems.exp.map(function (cur) {\r\n        return cur.getPercentage();\r\n      });\r\n      return allPerc;\r\n    },\r\n    getBudget: function () {\r\n      return {\r\n        budget: data.budget,\r\n        totalInc: data.totals.inc,\r\n        totalExp: data.totals.exp,\r\n        percentage: data.percentage\r\n      };\r\n    },\r\n    testing: function () {\r\n      console.log(data);\r\n    }\r\n  };\r\n\r\n})();\r\n\r\nvar UIController = (function () {\r\n\r\n  var DOMstrings = {\r\n    inputType: '.add__type',\r\n    inputDescription: '.add__description',\r\n    inputValue: '.add__value',\r\n    inputBtn: '.add__btn',\r\n    incomeContainer: '.income__list',\r\n    expensesContainer: '.expenses__list',\r\n    budgetLabel: '.budget__value',\r\n    incomeLabel: '.budget__income--value',\r\n    expensesLabel: '.budget__expenses--value',\r\n    percentageLabel: '.budget__expenses--percentage',\r\n    container: '.container',\r\n    expensesPercLabel: '.item__percentage',\r\n    dateLabel: '.budget__title--month'\r\n  };\r\n\r\n\r\n  var formatNumber = function (num, type) {\r\n    var numSplit, int, dec, type;\r\n\r\n    num = Math.abs(num);\r\n    num = num.toFixed(2);\r\n\r\n    numSplit = num.split('.');\r\n\r\n    int = numSplit[0];\r\n    if (int.length &gt; 3) {\r\n      int = int.substr(0, int.length - 3) + ',' + int.substr(int.length - 3, 3);\r\n    }\r\n\r\n    dec = numSplit[1];\r\n\r\n    return (type === 'exp' ? '-' : '+') + ' ' + int + '.' + dec;\r\n\r\n  };\r\n\r\n\r\n  var nodeListForEach = function (list, callback) {\r\n    for (var i = 0; i &lt; list.length; i++) {\r\n      callback(list[i], i);\r\n    }\r\n  };\r\n\r\n\r\n  return {\r\n    getInput: function () {\r\n      return {\r\n        type: document.querySelector(DOMstrings.inputType).value, \/\/ Will be either inc or exp\r\n        description: document.querySelector(DOMstrings.inputDescription).value,\r\n        value: parseFloat(document.querySelector(DOMstrings.inputValue).value)\r\n      };\r\n    },\r\n\r\n\r\n    addListItem: function (obj, type) {\r\n      var html, newHtml, element;\r\n\r\n      if (type === 'inc') {\r\n        element = DOMstrings.incomeContainer;\r\n\r\n        html = '&lt;div class=\"item clearfix\" id=\"inc-%id%\"&gt; &lt;div class=\"item__description\"&gt;%description%&lt;\/div&gt;&lt;div class=\"right clearfix\"&gt;&lt;div class=\"item__value\"&gt;%value%&lt;\/div&gt;&lt;div class=\"item__delete\"&gt;&lt;button class=\"item__delete--btn\"&gt;&lt;i class=\"ion-ios-close-outline\"&gt;&lt;\/i&gt;&lt;\/button&gt;&lt;\/div&gt;&lt;\/div&gt;&lt;\/div&gt;';\r\n      } else if (type === 'exp') {\r\n        element = DOMstrings.expensesContainer;\r\n\r\n        html = '&lt;div class=\"item clearfix\" id=\"exp-%id%\"&gt;&lt;div class=\"item__description\"&gt;%description%&lt;\/div&gt;&lt;div class=\"right clearfix\"&gt;&lt;div class=\"item__value\"&gt;%value%&lt;\/div&gt;&lt;div class=\"item__percentage\"&gt;21%&lt;\/div&gt;&lt;div class=\"item__delete\"&gt;&lt;button class=\"item__delete--btn\"&gt;&lt;i class=\"ion-ios-close-outline\"&gt;&lt;\/i&gt;&lt;\/button&gt;&lt;\/div&gt;&lt;\/div&gt;&lt;\/div&gt;';\r\n      }\r\n\r\n      newHtml = html.replace('%id%', obj.id);\r\n      newHtml = newHtml.replace('%description%', obj.description);\r\n      newHtml = newHtml.replace('%value%', formatNumber(obj.value, type));\r\n\r\n      document.querySelector(element).insertAdjacentHTML('beforeend', newHtml);\r\n    },\r\n\r\n\r\n    deleteListItem: function (selectorID) {\r\n      var el = document.getElementById(selectorID);\r\n      el.parentNode.removeChild(el);\r\n    },\r\n\r\n\r\n    clearFields: function () {\r\n      var fields, fieldsArr;\r\n      fields = document.querySelectorAll(DOMstrings.inputDescription + ', ' + DOMstrings.inputValue);\r\n      fieldsArr = Array.prototype.slice.call(fields);\r\n      fieldsArr.forEach(function (current, index, array) {\r\n        current.value = \"\";\r\n      });\r\n\r\n      fieldsArr[0].focus();\r\n    },\r\n\r\n\r\n    displayBudget: function (obj) {\r\n      var type;\r\n      obj.budget &gt; 0 ? type = 'inc' : type = 'exp';\r\n\r\n      document.querySelector(DOMstrings.budgetLabel).textContent = formatNumber(obj.budget, type);\r\n      document.querySelector(DOMstrings.incomeLabel).textContent = formatNumber(obj.totalInc, 'inc');\r\n      document.querySelector(DOMstrings.expensesLabel).textContent = formatNumber(obj.totalExp, 'exp');\r\n\r\n      if (obj.percentage &gt; 0) {\r\n        document.querySelector(DOMstrings.percentageLabel).textContent = obj.percentage + '%';\r\n      } else {\r\n        document.querySelector(DOMstrings.percentageLabel).textContent = '---';\r\n      }\r\n\r\n    },\r\n\r\n\r\n    displayPercentages: function (percentages) {\r\n      var fields = document.querySelectorAll(DOMstrings.expensesPercLabel);\r\n      nodeListForEach(fields, function (current, index) {\r\n        if (percentages[index] &gt; 0) {\r\n          current.textContent = percentages[index] + '%';\r\n        } else {\r\n          current.textContent = '---';\r\n        }\r\n      });\r\n    },\r\n\r\n\r\n    displayMonth: function () {\r\n      var now, months, month, year;\r\n      now = new Date();\r\n      months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n      month = now.getMonth();\r\n      year = now.getFullYear();\r\n      document.querySelector(DOMstrings.dateLabel).textContent = months[month] + ' ' + year;\r\n    },\r\n\r\n\r\n    changedType: function () {\r\n\r\n      var fields = document.querySelectorAll(\r\n        DOMstrings.inputType + ',' +\r\n        DOMstrings.inputDescription + ',' +\r\n        DOMstrings.inputValue);\r\n\r\n      nodeListForEach(fields, function (cur) {\r\n        cur.classList.toggle('red-focus');\r\n      });\r\n\r\n      document.querySelector(DOMstrings.inputBtn).classList.toggle('red');\r\n\r\n    },\r\n\r\n\r\n    getDOMstrings: function () {\r\n      return DOMstrings;\r\n    }\r\n  };\r\n\r\n})();\r\n\r\nvar controller = (function (budgetCtrl, UICtrl) {\r\n\r\n  var setupEventListeners = function () {\r\n    var DOM = UICtrl.getDOMstrings();\r\n\r\n    document.querySelector(DOM.inputBtn).addEventListener('click', ctrlAddItem);\r\n\r\n    document.addEventListener('keypress', function (event) {\r\n      if (event.keyCode === 13 || event.which === 13) {\r\n        ctrlAddItem();\r\n      }\r\n    });\r\n\r\n    document.querySelector(DOM.container).addEventListener('click', ctrlDeleteItem);\r\n\r\n    document.querySelector(DOM.inputType).addEventListener('change', UICtrl.changedType);\r\n  };\r\n\r\n\r\n  var updateBudget = function () {\r\n    budgetCtrl.calculateBudget();\r\n    var budget = budgetCtrl.getBudget();\r\n    UICtrl.displayBudget(budget);\r\n  };\r\n\r\n  var updatePercentages = function () {\r\n    budgetCtrl.calculatePercentages();\r\n    var percentages = budgetCtrl.getPercentages();\r\n    UICtrl.displayPercentages(percentages);\r\n  };\r\n\r\n\r\n  var ctrlAddItem = function () {\r\n    var input, newItem;\r\n    input = UICtrl.getInput();\r\n\r\n    if (input.description !== \"\" &amp;&amp; !isNaN(input.value) &amp;&amp; input.value &gt; 0) {\r\n      newItem = budgetCtrl.addItem(input.type, input.description, input.value);\r\n      UICtrl.addListItem(newItem, input.type);\r\n      UICtrl.clearFields();\r\n      updateBudget();\r\n      updatePercentages();\r\n    }\r\n  };\r\n\r\n\r\n  var ctrlDeleteItem = function (event) {\r\n    var itemID, splitID, type, ID;\r\n    itemID = event.target.parentNode.parentNode.parentNode.parentNode.id;\r\n\r\n    if (itemID) {\r\n      splitID = itemID.split('-');\r\n      type = splitID[0];\r\n      ID = parseInt(splitID[1]);\r\n      budgetCtrl.deleteItem(type, ID);\r\n      UICtrl.deleteListItem(itemID);\r\n      updateBudget();\r\n      updatePercentages();\r\n    }\r\n  };\r\n\r\n\r\n  return {\r\n    init: function () {\r\n      console.log('Application has started.');\r\n      UICtrl.displayMonth();\r\n      UICtrl.displayBudget({\r\n        budget: 0,\r\n        totalInc: 0,\r\n        totalExp: 0,\r\n        percentage: -1\r\n      });\r\n      setupEventListeners();\r\n    }\r\n  };\r\n\r\n})(budgetController, UIController);\r\n\r\n\r\ncontroller.init();<\/pre>\n<p>That&#8217;s all! hopefully, you have successfully created a Simple Budget Calculator using JavaScript. If you have any questions or suggestions, feel free to comment below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This code creates a simple budget calculator in JavaScript. It allows you to manage your finances by tracking your income&#8230;<\/p>\n","protected":false},"author":1,"featured_media":9443,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[116],"tags":[216],"class_list":["post-9436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vanilla-javascript","tag-calculator"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Simple Budget Calculator in JavaScript &#8212; CodeHim<\/title>\n<meta name=\"description\" content=\"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Simple Budget Calculator in JavaScript &#8212; CodeHim\" \/>\n<meta property=\"og:description\" content=\"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"CodeHim\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/codehimofficial\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-10T18:02:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-22T11:03:37+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"960\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Asif Mughal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodeHimOfficial\" \/>\n<meta name=\"twitter:site\" content=\"@CodeHimOfficial\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Asif Mughal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\"},\"author\":{\"name\":\"Asif Mughal\",\"@id\":\"https:\/\/codehim.com\/#\/schema\/person\/cc48f1dbe072a89a62a98171b7db43ed\"},\"headline\":\"Simple Budget Calculator in JavaScript\",\"datePublished\":\"2024-01-10T18:02:00+00:00\",\"dateModified\":\"2024-01-22T11:03:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\"},\"wordCount\":213,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/codehim.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png\",\"keywords\":[\"Calculator\"],\"articleSection\":[\"Vanilla JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\",\"url\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\",\"name\":\"Simple Budget Calculator in JavaScript &#8212; CodeHim\",\"isPartOf\":{\"@id\":\"https:\/\/codehim.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png\",\"datePublished\":\"2024-01-10T18:02:00+00:00\",\"dateModified\":\"2024-01-22T11:03:37+00:00\",\"description\":\"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.\",\"breadcrumb\":{\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage\",\"url\":\"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png\",\"contentUrl\":\"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png\",\"width\":1280,\"height\":960,\"caption\":\"Simple Budget Calculator in JavaScript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/codehim.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vanilla JavaScript\",\"item\":\"https:\/\/codehim.com\/category\/vanilla-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Simple Budget Calculator in JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/codehim.com\/#website\",\"url\":\"https:\/\/codehim.com\/\",\"name\":\"CodeHim\",\"description\":\"Web Design Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/codehim.com\/#organization\"},\"alternateName\":\"Web Design Codes\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/codehim.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/codehim.com\/#organization\",\"name\":\"CodeHim - Web Design Code & Scripts\",\"url\":\"https:\/\/codehim.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codehim.com\/#\/schema\/logo\/image\/\",\"url\":\"http:\/\/codehim.com\/wp-content\/uploads\/2023\/06\/Codehim-short-logo.jpg\",\"contentUrl\":\"http:\/\/codehim.com\/wp-content\/uploads\/2023\/06\/Codehim-short-logo.jpg\",\"width\":280,\"height\":280,\"caption\":\"CodeHim - Web Design Code & Scripts\"},\"image\":{\"@id\":\"https:\/\/codehim.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/codehimofficial\",\"https:\/\/x.com\/CodeHimOfficial\",\"https:\/\/www.instagram.com\/codehim\/\",\"https:\/\/www.linkedin.com\/company\/codehim\",\"https:\/\/co.pinterest.com\/codehim\/\",\"https:\/\/www.youtube.com\/@codehim\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/codehim.com\/#\/schema\/person\/cc48f1dbe072a89a62a98171b7db43ed\",\"name\":\"Asif Mughal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/codehim.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b25bfcd7d4e341c2c6f785a88d8ad2a4?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b25bfcd7d4e341c2c6f785a88d8ad2a4?s=96&d=mm&r=g\",\"caption\":\"Asif Mughal\"},\"description\":\"I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences. I truly enjoy what I'm doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.\",\"sameAs\":[\"https:\/\/codehim.com\"],\"url\":\"https:\/\/codehim.com\/author\/asif-mughal\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Simple Budget Calculator in JavaScript &#8212; CodeHim","description":"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/","og_locale":"en_US","og_type":"article","og_title":"Simple Budget Calculator in JavaScript &#8212; CodeHim","og_description":"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.","og_url":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/","og_site_name":"CodeHim","article_publisher":"https:\/\/www.facebook.com\/codehimofficial","article_published_time":"2024-01-10T18:02:00+00:00","article_modified_time":"2024-01-22T11:03:37+00:00","og_image":[{"width":1280,"height":960,"url":"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png","type":"image\/png"}],"author":"Asif Mughal","twitter_card":"summary_large_image","twitter_creator":"@CodeHimOfficial","twitter_site":"@CodeHimOfficial","twitter_misc":{"Written by":"Asif Mughal","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#article","isPartOf":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/"},"author":{"name":"Asif Mughal","@id":"https:\/\/codehim.com\/#\/schema\/person\/cc48f1dbe072a89a62a98171b7db43ed"},"headline":"Simple Budget Calculator in JavaScript","datePublished":"2024-01-10T18:02:00+00:00","dateModified":"2024-01-22T11:03:37+00:00","mainEntityOfPage":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/"},"wordCount":213,"commentCount":0,"publisher":{"@id":"https:\/\/codehim.com\/#organization"},"image":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png","keywords":["Calculator"],"articleSection":["Vanilla JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/","url":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/","name":"Simple Budget Calculator in JavaScript &#8212; CodeHim","isPartOf":{"@id":"https:\/\/codehim.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage"},"image":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png","datePublished":"2024-01-10T18:02:00+00:00","dateModified":"2024-01-22T11:03:37+00:00","description":"Here is a free code snippet to create a Simple Budget Calculator in JavaScript. You can view demo and download the source code.","breadcrumb":{"@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#primaryimage","url":"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png","contentUrl":"https:\/\/codehim.com\/wp-content\/uploads\/2023\/10\/Simple-Budget-Calculator-in-JavaScript.png","width":1280,"height":960,"caption":"Simple Budget Calculator in JavaScript"},{"@type":"BreadcrumbList","@id":"https:\/\/codehim.com\/vanilla-javascript\/simple-budget-calculator-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/codehim.com\/"},{"@type":"ListItem","position":2,"name":"Vanilla JavaScript","item":"https:\/\/codehim.com\/category\/vanilla-javascript\/"},{"@type":"ListItem","position":3,"name":"Simple Budget Calculator in JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/codehim.com\/#website","url":"https:\/\/codehim.com\/","name":"CodeHim","description":"Web Design Code Snippets","publisher":{"@id":"https:\/\/codehim.com\/#organization"},"alternateName":"Web Design Codes","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/codehim.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/codehim.com\/#organization","name":"CodeHim - Web Design Code & Scripts","url":"https:\/\/codehim.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codehim.com\/#\/schema\/logo\/image\/","url":"http:\/\/codehim.com\/wp-content\/uploads\/2023\/06\/Codehim-short-logo.jpg","contentUrl":"http:\/\/codehim.com\/wp-content\/uploads\/2023\/06\/Codehim-short-logo.jpg","width":280,"height":280,"caption":"CodeHim - Web Design Code & Scripts"},"image":{"@id":"https:\/\/codehim.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/codehimofficial","https:\/\/x.com\/CodeHimOfficial","https:\/\/www.instagram.com\/codehim\/","https:\/\/www.linkedin.com\/company\/codehim","https:\/\/co.pinterest.com\/codehim\/","https:\/\/www.youtube.com\/@codehim"]},{"@type":"Person","@id":"https:\/\/codehim.com\/#\/schema\/person\/cc48f1dbe072a89a62a98171b7db43ed","name":"Asif Mughal","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/codehim.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b25bfcd7d4e341c2c6f785a88d8ad2a4?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b25bfcd7d4e341c2c6f785a88d8ad2a4?s=96&d=mm&r=g","caption":"Asif Mughal"},"description":"I code and create web elements for amazing people around the world. I like work with new people. New people new Experiences. I truly enjoy what I'm doing, which makes me more passionate about web development and coding. I am always ready to do challenging tasks whether it is about creating a custom CMS from scratch or customizing an existing system.","sameAs":["https:\/\/codehim.com"],"url":"https:\/\/codehim.com\/author\/asif-mughal\/"}]}},"views":1823,"_links":{"self":[{"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/posts\/9436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/comments?post=9436"}],"version-history":[{"count":0,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/posts\/9436\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/media\/9443"}],"wp:attachment":[{"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/media?parent=9436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/categories?post=9436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codehim.com\/wp-json\/wp\/v2\/tags?post=9436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}