Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Why doesn't my function output the correct string?

After learning the basics of html and CSS I’m currently following SuperSimpleDev tutorial on JavaScript.
In my web page, I’m supposed to see the following display :
Get groceries
Wash car
Make dinner

But I just got ‘Get groceries’ 3 times instead.
Here is my code.

let todo1 = 'Get groceries';
let todo2 = 'Wash car';
let todo3 = 'Make dinner';

function addTodo(todoTitle) {
  let element = document.createElement('div');
  element.innerText = todo1;
  document.body.appendChild(element);
}

addTodo(todo1);
addTodo(todo2);
addTodo(todo3);
<button>Press meeeeee</button>

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Your code is set to always add todo1. Instead, add whatever the value of the function argument is.

let todo1 = 'Get groceries';
let todo2 = 'Wash car';
let todo3 = 'Make dinner';

function addTodo(todoTitle) {
  let element = document.createElement('div');
  element.innerText = todoTitle;  //  <-- You were always adding todo1 here
  document.body.appendChild(element);
}

addTodo(todo1);
addTodo(todo2);
addTodo(todo3);
<button>Press meeeeee</button>

Also, your code should probably run when the button is clicked, but right now, you aren’t doing anything with the button. So here’s the code that will work based on a button click.

let todo1 = 'Get groceries';
let todo2 = 'Wash car';
let todo3 = 'Make dinner';

// Set the button up to invoke a function when clicked
document.querySelector("button").addEventListener("click", function(){
  // This is just an example of how a user could select different choices
  let choice = prompt('Enter 1-3 for the various choices.');
  
  // switch allows you to test a single value for many possible
  // outcomes and act accordingly for each. Prepending + to a string
  // that holds a numeral implicitly converts it to a number.
  switch(+choice){
    case 1:
      addTodo(todo1);
      break;
    case 2:
      addTodo(todo2);
      break;
    case 3:
      addTodo(todo3);
      break;
    default:
      addTodo("You didn't enter a valid choice");
  }
})

function addTodo(todoTitle) {
  let element = document.createElement('div');
  element.innerText = todoTitle;  //  <-- You were always adding todo1 here
  document.body.appendChild(element);
}
<button>Press meeeeee</button>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading