页面有一个可选中和取消选中的列表,是循环渲染的一个数组,如何使用js记录选中的数组,然后生成一个心数组。注意选中之后可以取消选中
时间: 2024-02-18 17:59:53 浏览: 148
纯CSS+jQuery制作的相册里图片选中效果一点选中再点取消选中
可以给每个选项添加一个监听事件,当选项被点击时,判断是否被选中,如果被选中就将其加入到选中的数组中,如果没有选中就将其从选中的数组中删除。可以使用以下代码实现:
```javascript
let selectedArr = [];
// 遍历所有选项
const options = document.querySelectorAll('.option');
options.forEach((option) => {
// 给每个选项添加监听事件
option.addEventListener('click', () => {
if (option.classList.contains('selected')) {
// 如果已经选中,就将其从选中的数组中删除
const index = selectedArr.indexOf(option.innerText);
if (index > -1) {
selectedArr.splice(index, 1);
}
option.classList.remove('selected');
} else {
// 如果没有选中,就将其加入到选中的数组中
selectedArr.push(option.innerText);
option.classList.add('selected');
}
});
});
```
在上述代码中,我们先声明了一个 `selectedArr` 数组,用于记录选中的选项。然后使用 `querySelectorAll` 方法获取所有选项,并使用 `forEach` 方法遍历每个选项,给每个选项添加一个 `click` 监听事件。当选项被点击时,我们先判断它是否已经被选中,如果已经选中,就将其从 `selectedArr` 数组中删除,并移除选中样式;如果没有选中,就将其加入到 `selectedArr` 数组中,并添加选中样式。最后,我们就可以使用 `selectedArr` 数组来生成心数组了。
阅读全文