Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript and the DOM (Retiring) Making Changes to the DOM Appending Nodes

Antwaun Johnson
PLUS
Antwaun Johnson
Courses Plus Student 11,157 Points

Please help with Add Item Button

I know my error is at line 23 of my code, I'm just not able to find my error

const toggleList = document.getElementById('toggleList');
const listDiv = document.querySelector('.list');
const descriptioninput = document.querySelector('input.description');
const descriptionp = document.querySelector('p.description');
const descriptionButton = document.querySelector('button.description')
const addItemInput = document.querySelector('input.addItemInput');
const addItemButton = document.querySelector('input.addItemButton');

toggleList.addEventListener('click', () => {
if (listDiv.style.display == 'none') {
  listDiv.style.display = 'block';
  toggleList.textContent = 'Hide list';
} else {
  toggleList.textContent = 'Show list';
  listDiv.style.display = 'none';
}
                            });

descriptionButton.addEventListener('click', () => {
                        descriptionp.innerHTML = descriptioninput.value + ':';
                        });

addItemButton.addEventListener('click', () => {
   let ul = document.getElementsByTagName('ul')[0];
   let li = document.createElement('li');
   li.textContent = addItemInput.value;
   ul.appendChild(li);
                               });
SAMUEL LAWRENCE
SAMUEL LAWRENCE
Courses Plus Student 8,447 Points

Hi, when you created the addItemButton constant and you selected the element with the querySelector you placed input in front of the class name. Try removing the element name and just use .addItemButton instead.

const toggleList = document.getElementById('toggleList');
const listDiv = document.querySelector('.list');
const descriptioninput = document.querySelector('input.description');
const descriptionp = document.querySelector('p.description');
const descriptionButton = document.querySelector('button.description')
const addItemInput = document.querySelector('.addItemInput'); //remove the name of the html element (input) and just use the class name
const addItemButton = document.querySelector('.addItemButton'); //remove the name of the html element (input) and just use the class name

toggleList.addEventListener('click', () => {
if (listDiv.style.display == 'none') {
  listDiv.style.display = 'block';
  toggleList.textContent = 'Hide list';
} else {
  toggleList.textContent = 'Show list';
  listDiv.style.display = 'none';
}
                            });

descriptionButton.addEventListener('click', () => {
                        descriptionp.innerHTML = descriptioninput.value + ':';
                        });

addItemButton.addEventListener('click', () => {
   let ul = document.getElementsByTagName('ul')[0];
   let li = document.createElement('li');
   li.textContent = addItemInput.value;
   ul.appendChild(li);
                               });

Also some times the line the console tells you the problem is on is usually not the he line causing the actual error. It’s usually before. Keep that in mind.

1 Answer

What kind of button you want ?? Is it like the "select option button: http://shop4fun.online/