Skip to content

Replace selector with array item

I would like to archive that I have an Array, with 3-4 Items and then I want to itterate throw all of them and change the selector in the function with the items of the array.

let items = ['Name','Person,'New']

then my function

$('.btn').on("click", function(){do smth});

and then the foreach .btn should be like name or person, and I want maybe to add late more Items to the array. How should I do it?

for 3 functions

$('.name .btn').on("click", function()){do smth.})

$('.name .test').on("click", function()){do smth.})

$('.name .dosmth').on("click", function()){do smth.})

Name should be replaced with item of the array

I want unique function for the elements

Answer

Try this:

let items = ['name', 'person', 'new']
let elements = [{
    name: 'btn',
    callback: () => {
      // do something
    }
  },
  {
    name: 'test',
    callback: () => {
      // do something
    }
  },
  {
    name: 'dosmth',
    callback: () => {
      // do something
    }
  }
]
items.forEach(item =>
  elements.forEach(element => $(`.${item} .${element.name}`).on("click", element.callback()))
)