我想使用一个新的数组类似于[0,1,0,1]来记录选中状态,0代表没选中,1代表选中,最后在和数组匹配,取出1对应的id
时间: 2024-02-18 18:59:58 浏览: 67
0-1-knapsack-problem-master (100)c.zip
好的,你可以在选项被点击时,将选中状态记录在一个新的数组中。代码如下:
```javascript
let selectedArr = [];
// 遍历所有选项
const options = document.querySelectorAll('.option');
options.forEach((option, index) => {
// 给每个选项添加监听事件
option.addEventListener('click', () => {
if (selectedArr[index] === 1) {
// 如果已经选中,就将其从选中状态数组中删除
selectedArr[index] = 0;
option.classList.remove('selected');
} else {
// 如果没有选中,就将其加入到选中状态数组中
selectedArr[index] = 1;
option.classList.add('selected');
}
});
});
```
在上述代码中,我们使用一个新的数组 `selectedArr` 来记录选项的选中状态,0 代表未选中,1 代表选中。在遍历选项时,我们给每个选项添加一个 `click` 监听事件。当选项被点击时,我们根据对应的索引值来判断其选中状态。如果选项已经被选中,就将其从选中状态数组中删除,并移除选中样式;如果没有选中,就将其加入到选中状态数组中,并添加选中样式。最后,我们就可以使用选中状态数组来匹配选项的 id 了。
假设选项的 id 存储在一个名为 `optionsIds` 的数组中,我们可以使用以下代码来获取选中的选项的 id:
```javascript
const selectedIds = optionsIds.filter((id, index) => selectedArr[index] === 1);
console.log(selectedIds);
```
在上述代码中,我们使用 `filter` 方法来筛选选中状态数组中值为 1 的索引位置,然后通过索引位置来获取选项的 id。最终,我们可以得到一个名为 `selectedIds` 的数组,其中存储了选中的选项的 id。
阅读全文