Javascript 如何从列表中删除未选中的值?
我需要从复选框中获取所有选中值,并在元素中返回它们 我有一个密码:Javascript 如何从列表中删除未选中的值?,javascript,arrays,Javascript,Arrays,我需要从复选框中获取所有选中值,并在元素中返回它们 我有一个密码: this.values = []; if (item.checked) { this.values.push(item.value); } else { this.values.splice(item.value) } return alert(this.values); 问题不多: 如果我选中并取消选中同一项,它每次都会推送到数组,因此可能会有相同的多个值(this.val
this.values = [];
if (item.checked) {
this.values.push(item.value);
} else {
this.values.splice(item.value)
}
return alert(this.values);
问题不多:
(this.values=[])代码>
this.values=[1,2,3]
如果我取消选中项目编号2,
this.values=[1,3]
对所有复选框使用公共类,然后使用document.querySelectorAll
获取复选框并将事件侦听器附加到每个复选框
现在打开change
甚至调用另一个函数,首先过滤选中的复选框,然后使用map
获取复选框值的数组
let elem=[…document.querySelectorAll('.checkBox')]
elem.forEach(item=>item.addEventListener('change',getChecked))
函数getChecked(){
让getChex=elem.filter(item=>item.checked).map(item=>item.value)
console.log(getChex)
}
1.
2.
3
对所有复选框使用公共类,然后使用document.querySelectorAll
获取复选框并将事件侦听器附加到每个复选框
现在打开change
甚至调用另一个函数,首先过滤选中的复选框,然后使用map
获取复选框值的数组
let elem=[…document.querySelectorAll('.checkBox')]
elem.forEach(item=>item.addEventListener('change',getChecked))
函数getChecked(){
让getChex=elem.filter(item=>item.checked).map(item=>item.value)
console.log(getChex)
}
1.
2.
3
再见,您可以这样做:
this.values = [];
if (item.checked) {
if(!this.values.includes(item.value)) {
this.values.push(item.value);
}
} else {
if(indexOf(item.value) !== -1){
this.values.splice(this.values.indexOf(item.value), 1)
}
}
return alert(this.values);
仅当this.values
不包含值时插入item.value
,并将splice
与索引一起使用(如果项目位于this.value
)。Ciao,您可以执行以下操作:
this.values = [];
if (item.checked) {
if(!this.values.includes(item.value)) {
this.values.push(item.value);
}
} else {
if(indexOf(item.value) !== -1){
this.values.splice(this.values.indexOf(item.value), 1)
}
}
return alert(this.values);
仅当this.values
不包含值时插入item.value
,并使用带索引的splice
(如果项目位于this.value
)。,因为您没有显示html文件。我刚刚发布了代码,供您参考
function getSelectedCheckboxValues(name) {
const checkboxes = document.querySelectorAll(`input[name="${name}"]:checked`);
let values = [];
checkboxes.forEach((checkbox) => {
values.push(checkbox.value);
});
return values;
}
如果您正在HTML中编辑js,
替换
与
来源:因为您没有显示html文件。我刚刚发布了代码,供您参考
function getSelectedCheckboxValues(name) {
const checkboxes = document.querySelectorAll(`input[name="${name}"]:checked`);
let values = [];
checkboxes.forEach((checkbox) => {
values.push(checkbox.value);
});
return values;
}
如果您正在HTML中编辑js,
替换
与
来源:我想这可能适合你:@NikitaMadeev:这只在设置值时有用,但在删除时他需要帮助。@Pritesh??你的问题不完全清楚,你是想从数组中删除项吗?不完全清楚。我需要在数组中存储选中的值。但如果它们未被选中,请将其删除。例如,我选中了项目编号1,arr=[1],取消选中-arr=[]。如果有多项选择-我选中了第1项、第2项和第3项。arr将变为[1,2,3]。我只取消选中数字1,arr转到[2,3]。类似这样的事情我想可能适合你:@NikitaMadeev:这只在设置值时有用,但在删除时他需要帮助。@Pritesh??你的问题不完全清楚,你是想从数组中删除项吗?不完全清楚。我需要在数组中存储选中的值。但如果它们未被选中,请将其删除。例如,我选中了项目编号1,arr=[1],取消选中-arr=[]。如果有多项选择-我选中了第1项、第2项和第3项。arr将变为[1,2,3]。我只取消选中数字1,arr转到[2,3]。这是一个很好的例子,但是如果我的值不是数字,而是单词呢?我试着用数字和值来做这件事,效果很好,但是用单词splice do not remove from ArrayChiao,我用一个对数字和字符串有效的解决方案更新了我的答案。这是一个很好的解决方案,但是如果我的值不是数字,而是单词呢?我试着用数字值来做这件事,效果很好,但是用单词splice do not remove from ArrayChiao,我用一个对数字和字符串有效的解决方案更新了我的答案。