JavaScript JavaScript and the DOM Responding to User Interaction Event Delegation

Darrin Spell Jr
Darrin Spell Jr
Full Stack JavaScript Techdegree Student 7,165 Points

I think my approach is wrong. Some guidance please?

I went back and watched the video and I am still getting it wrong.

app.js
let section = document.getElementsByTagName('section')[0];
let input = document.getElementByTagName('input')[0];

section.addEventListener('click', (e) => {
  e.target.style.backgroundColor = 'rgb(255, 255, 0)';
});

input.addEventListener('click', (event) => {
  if (event.target.tagName == 'INPUT') {
  event.target.textContent.style.backgroundColor = 'red';
      }
});
index.html
<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and the DOM</title>
    </head>
    <link rel="stylesheet" href="style.css" />
    <body>
        <section>
            <h1>Making a Webpage Interactive</h1>
            <p>JavaScript is an exciting language that you can use to power web servers, create desktop programs, and even control robots. But JavaScript got its start in the browser way back in 1995.</p>
            <hr>
            <p>Things to Learn</p>
            <ul>
                <li>Item One: <input type="text"></li>
                <li>Item Two: <input type="text"></li>
                <li>Item Three: <input type="text"></li>
                <li>Item Four: <input type="text"></li>
            </ul>
            <button>Save</button>
        </section>
        <script src="app.js"></script>
    </body>
</html>

2 Answers

Antony Pesantez
Antony Pesantez
1,308 Points

On your second line you are missing an "s" on getElementByTagName

var input = document.getElementsByTagName('input'); var i = 0; for (i=0; i< input.length; i++) {

input[i].addEventListener('click', function() {

this.style.backgroundColor = 'rgb(255, 255, 0)';

});

};