need to create a variable from each element’s id attribute – using jquery
as a final result – btngo.on('click'... – should work
any help
$('body *').each(function(){
if($(this).attr('id')){
var id = $(this).attr('id');
console.log(id); // ok
$(window)[id] = $(this); // here is the problem
}
});
btngo.on('click', function(){
console.log('btngo clicked');
});<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button id='btngo'>GO</button>
Advertisement
Answer
simply
document.body.querySelectorAll('[id]').forEach(el=>console.log(el.id))
btngo.onclick = () => console.log('btngo clicked' )
/* same as:
window.btngo.onclick = () => console.log('btngo clicked' )
// or
window['btngo'].onclick = () => console.log('btngo clicked' )
--------*/<button id='btngo'>GO</button>
within an array :
const Elements = [...document.body.querySelectorAll('[id]')]
.reduce((list, el) =>
{
list[el.id] = document.getElementById(el.id)
return list
}, {})
Elements['btngo'].onclick = () => console.log('btngo clicked' )<button id="btngo">Click me</button>