function handleDeltioItemRemoveWithBoundData(/* evt */) {
const { node, item, itemList } = this;
const removeAtIndex = itemList.findIndex(({ teams, name, location }) =>
((item.teams === teams) && (item.name === name) && (item.location === location))
);
itemList.splice(removeAtIndex, 1);
node.remove();
// localStorage.setItem('assoiChoices', JSON.stringify(itemList));
console.log('remove deltio item :: item ...', item);
console.log('remove deltio item :: itemList ...', itemList);
}
function subscribeToDeltioItemRemove(node, item, itemList) {
node
.querySelector('.close_but')
.addEventListener('click', handleDeltioItemRemoveWithBoundData.bind({
node,
item,
itemList,
}));
}
function createDeltioItem(item) {
const renderBox = document.createElement('div');
renderBox.innerHTML = `
<div class="betslip_top_container">
<div style="padding-left:5px;">
<i class="close_but far fa-times-circle"></i>
</div>
<div class="b_s_matches">
<p class="paroli_items">${ item.teams }</p>
<p class="paroli_items">${ item.name }</p>
<p class="paroli_items">${ item.location } </p>
</div>
</div>`;
return renderBox.firstElementChild;
}
function renderDeltioItems(rootNode, itemList) {
itemList.forEach(item => {
const elmNode = createDeltioItem(item);
subscribeToDeltioItemRemove(elmNode, item, itemList);
rootNode.appendChild(elmNode);
});
}
function main() {
const deltioItems = [
{ teams: 'The Foos', name: 'Foo Fighter', location: 'foo' },
{ teams: 'The Bars', name: 'Bar Keeper', location: 'bar' },
{ teams: 'The Bazzos', name: 'Bazooka', location: 'baz' },
];
// let deltioItems = localStorage.getItem('assoiChoices');
// deltioItems = JSON.parse(deltioItems);
console.log('main() :: deltioItems ...', deltioItems);
renderDeltioItems(
document.querySelector('.bet_slip_matches'),
deltioItems
);
}
main();
body { margin: 0; font-size: 86%; }
p { margin: 0; padding: 0; }
.betslip_top_container { position: relative; width: 30%; }
.betslip_top_container > [style] { position: absolute; top: 0; right: 0; }
.close_but { cursor: pointer; }
.b_s_matches > p { display: inline-block; }
.b_s_matches > p:not(:last-child)::after { content: ', '; }
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta2/css/all.min.css" rel="stylesheet"/>
<div class="bet_slip_matches"></div>