I'm generating a list from an array. How can I know what element I'm clicking in JavaScript?

JavascriptWeb DevelopmentFront End TechnologyObject Oriented Programming

For this, you can use addEventListener().

Example

Following is the code −

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
</head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<body>
</body>
<script>
   var addButton;
   for (let i = 0; i < 3; i++) {
      addButton = document.createElement('button')
      if (i == 0) {
         addButton.innerHTML = "Javascript"
         addButton.dataset.subject = "Javascript"
         document.body.appendChild(addButton)
      }
      if (i == 1) {
         addButton.innerHTML = "MySQL"
         addButton.dataset.subject = "MySQL"
         document.body.appendChild(addButton)
      }
      if (i == 2) {
         addButton.innerHTML = "Java"
         addButton.dataset.subject = "Java"
         document.body.appendChild(addButton)
      }  
      addButton.addEventListener('click', function (evnt) {
         console.clear();
         console.log('Subject ' + evnt.target.dataset.subject + ' pressed')
      })
   }
</script>
</html>

To run the above program, save the file name anyName.html(index.html). Right click on the file and select the option “Open with live server” in VS Code editor.

Output

This will produce the following output −

Now press the button, you will get the following output on console −

raja
Updated on 27-Oct-2020 10:07:02

Advertisements