document.querySelector('.menu').addEventListener('click', ({ target: t }) => {
if (t.tagName === 'A') {
const submenu = [...t.parentNode.children].find(n => n.classList.contains('sub-menu'));
if (submenu) {
submenu.classList.toggle('red');
}
}
});
for (const n of document.querySelectorAll('.menu a')) {
n.addEventListener('click', onClick);
}
function onClick() {
this.nextElementSibling?.classList.toggle('red');
}
// или
document.querySelectorAll('.sub-menu').forEach(function(n) {
n.previousElementSibling.addEventListener('click', this);
}, e => e.target.nextElementSibling.classList.toggle('red'));
const map1 = new Map();
map1.set('bar', 'foo');
console.log(map1.delete('bar'));
// expected result: true
// (true indicates successful removal)
console.log(map1.has('bar'));
// expected result: false
map.get(k1) // ссылается на тот же объект, которым вы задали значение в set
map.get({a:1}) // уже совершенно другой объект
{a:1}, {a:1} // это два разных объекта
map.set({a:2}, 'oops') // вы не сможете достать или удалить это значение, потому как единственная
//ссылка на ключ лежит в самом Мапе
for (let key of map.keys()) {
console.log(map.get(key))
}
Как с этим работать?
<aside class="aside">
<div class="aside__logo logo">
<div class="logo__pic">
<img src="logo.png" alt="logo" class="logo__img" />
</div>
<div class="logo__title">Заголовок</div>
<div class="logo__ico">Иконка</div>
</div>
</aside>
new Vue({
el: '#app',
data: {
items: [{em: true},{em: true},{em: true}]
},
methods:{
click(item) {
item.em = !item.em
}
}
})
<div id="app">
<div class="wrap">
<div class="item" v-for="(item, i) in items" :key="i">
<div class="parent" @click="click(item)">
{{item.em}}
<div class="child" :class="`class${i}`" :style="{background: item.em ? 'blue' : 'red'}">{{ i + 1 }}</div>
</div>
</div>
</div>
</div>
data: () => ({
active: null,
}),
<div class="item" v-for="i in 5">
<div class="parent" @click="active = active === i ? null : i">
<div class="child" :class="active === i ? 'green' : 'red'">{{ i }}</div>
</div>
</div>
data: () => ({
items: Array(5).fill(false),
}),
<div class="item" v-for="(n, i) in items">
<div class="parent" @click="$set(items, i, !n)">
<div class="child" :class="{ green: n, red: !n }">{{ i + 1 }}</div>
</div>
</div>
props: [ 'text' ],
data: () => ({
active: 0,
}),
<div class="item">
<div class="parent" @click="active ^= 1">
<div class="child" :class="[ 'red', 'green' ][active]">{{ text }}</div>
</div>
</div>
data: () => ({
items: Array.from({ length: 5 }, (_, i) => `item #${-~i}`),
}),
<v-item v-for="n in items" :text="n"></v-item>