How to create a basic onClick event binding in JavaScript with an array?

Check out my JavaScript code snippet below:

let links = ["id1", "id2", "id3"];
let container = document.getElementById('container');
links.forEach(function(link){
  container.innerHTML += "<a href=\""+link+"\">"+link+"</a>"
}); 

Is there a way to bind an onClick Event handler to each link using an array, instead of repeating the code for each link?

Answer №1

My recommendation would be:

function callFunction(evt){
    console.log('You have clicked on the element with id = "' + this.id + '"');
}

var myElements = ["elem1", "elem2", "elem3"],
    container = document.getElementById('container'),
    link = document.createElement('a'),
    temp;

myElements.forEach(function(elem){
    temp = link.cloneNode();
 
    temp.href = '#' + elem;
    
    temp.id = 'link_' + elem;
    
    temp.appendChild(document.createTextNode(elem));
    
    temp.addEventListener('click', callFunction);
   
    container.appendChild(temp);
});

JS Fiddle example.

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

Module not found (Error: Module not found for './models/campground')

Here is the code snippet I am working with: var express = require("express"), app = express(), bodyParser = require("body-parser"), mongoose = require("mongoose"), Campground = require("./models/campground"), Comment = require("./mode ...

Leveraging Vue.js's capabilities with an external setup file

Is it feasible for a Vue App to access an external configuration file? I envision a setup where I deploy the application along with the config file; then, I should be able to modify the configuration in the external file without needing to rebuild the enti ...

The front-facing camera lacks both auto focus and manual focus capabilities

Current Issue While using react-native-camera on iPads/iPhones, the front-facing camera does not focus properly when scanning barcodes like Code39, Code128, or QR codes. The rear camera works fine, but the front camera fails to focus on the barcode or any ...

What is the proper way to encode URL parameters for a REST API request?

When working on a REST API call, I needed to create some URL parameters using Angularjs 1.4.2. To achieve this, I utilized a form to pass the parameters to a service function which handles building the parameters and making the $http.post call to the API. ...

Interact with embedded elements in JavaScript by using the onClick event

Here is a JavaScript code snippet I've been working on: <div> <tr onClick="click1()"> <td> click 1 </td> <td onClick="click2()"> click 2 < ...

Unable to establish a new pathway in the index.js file of a Node.js and Express website running on Heroku

I recently made some changes to my index.js file: const express = require('express'); const path = require('path'); const generatePassword = require('password-generator'); const fetch = require('node-fetch'); const ...

Is it possible to maintain inline style modifications when the dispatch event is triggered?

I am encountering an issue with inline style changes that are reset once my dispatch function is completed. Even though the rest of my component's functionality is working fine (the counter continues to run), the state is being re-rendered. Here is a ...

Setting the value of an ASP.NET TextBox in the ASP.NET ViewState HiddenField step by step guide

One common issue with ASP.NET TextBox is that when its Text is set with JavaScript, it disappears on postback because it is not stored in ViewState. ViewState is a hidden field created by ASP.NET to save the state of controls. Is there an official way from ...

JavaScript Form for computing Daily Rate from JSON

I am looking to retrieve pricing information from a JSON file based on the Room, Season, and number of nights specified. Currently, the HTML code triggers an alert each time one of the three form inputs is selected. <!DOCTYPE html> <html> < ...

What is the process for resetting a function within an AJAX Response?

I have implemented the code below in AJAX to switch tabs. $("a").click(function(event){ if ($.browser.msie != true && $.browser.version != 8.0){ event.preventDefault(); if ($(this).parent().hasClass("current") == false){ ...

Is it possible to solely track the speed of vertical mouse movements with cursormeter?

For the past week, I have been on a quest to find a solution using Jquery to extract only the vertical mouse speed. Although Cursormeter is useful, it does not solely focus on vertical speed: If anyone has any advice, please share! ...

JQuery - The method $(this).find() is not recognized as a valid function

I am currently working with a Material front-end that is implemented in Bootstrap. I am attempting to utilize JQuery to modify the content of a modal component: <div class="modal fade" id="formMail" tabindex="-1" rmle="dialog" aria-labelledby="formMail ...

Organize data that is deeply nested

Struggling to normalize deeply nested API response data? Look no further than https://github.com/paularmstrong/normalizr. This tool can help simplify your data structure. For example, if your input data looks like this: const data = [{ id: 'compone ...

Angular 6 seems to be having issues loading Bootstrap

I've run into an issue while trying to incorporate Bootstrap into Angular 6. I have already installed Bootstrap using npm install bootstrap and added it to angular.json, but it's still not functioning. Is there something else I should be doing? A ...

Prevent overlap of plane geometry in Three.js

Within the scene, I have introduced both sphere and plane geometry elements using X and Y coordinates to position the plane geometry. Unfortunately, some of the plane geometries are overlapping each other, causing an issue that needs to be addressed. The g ...

Auto language-switch on page load

Wondering if using jQuery is the best approach to create a single French page on my predominantly English website. I want it to work across multiple browsers on pageload, currently using HTML replace. jQuery(function($) { $("body").children().each(funct ...

Challenges with importing post-processing effects in a three.js and react.js environment

I've spent countless hours trying to solve this issue. Essentially, I have a Threejs scene set up as a react component (which means the scene initialization is done in ComponentDidMount() and the animation functions and resize are bound to "this". The ...

Steps to increase a specific value in a two-dimensional array

Seeking the most effective method in JavaScript (ES6) to accomplish this task. Let's consider a 2D array as shown below: const two_dimensional_array = [ [33000, 100], [33500, 200], ] Now, we have another 2D array like this: const another_array ...

What is the best way to retrieve the ID of the input element using a jQuery object?

After submitting a form with checkboxes, I retrieve the jQuery object containing the checked input elements. var $form = $(e.currentTarget); var $inputs = $form.find("input.form-check-input:checked") Here is an example of how the inputs are stru ...

What are the methods for defining fontSize and fontWeight in Quasar using :table-header-style?

Struggling to adjust the font size and weight in the header of a q-table component using Quasar. Surprisingly, changes to font color and background color are effective, but the size and weight remain unchanged. ...