当复选框未选中时,如何从Javascript数组中删除内容
我有一个表单,允许用户选择复选框。我能够创建一个数组,该数组接受复选框的文本内容。无论何时选择它们,它都会起作用。但是,每当取消选中框时,我希望从数组中删除文本。当前,当一个框未选中时,它会将未选中的框添加到数组中。我意识到这是因为每当发生on change函数时(即选中/未选中),我的代码都会填充数组。我只是在寻找一些东西,将删除字符串时,它是取消选中。有什么建议吗 html:当复选框未选中时,如何从Javascript数组中删除内容,javascript,html,checkbox,Javascript,Html,Checkbox,我有一个表单,允许用户选择复选框。我能够创建一个数组,该数组接受复选框的文本内容。无论何时选择它们,它都会起作用。但是,每当取消选中框时,我希望从数组中删除文本。当前,当一个框未选中时,它会将未选中的框添加到数组中。我意识到这是因为每当发生on change函数时(即选中/未选中),我的代码都会填充数组。我只是在寻找一些东西,将删除字符串时,它是取消选中。有什么建议吗 html: 一款图片分享应用 审查现场监测 谷歌+ LinkedIn 品特烈 四方 Tumblr 广告 Javascript
一款图片分享应用
审查现场监测
谷歌+
LinkedIn
品特烈
四方
Tumblr
广告
Javascript:
var options = [];
var inputs = document.getElementsByClassName('sum'),
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
if(this.checked){
options.push(this.parentNode.textContent.trim());
}
}
var选项=[];
var inputs=document.getElementsByClassName('sum'),
对于(变量i=0;i
jshiddle:
使选项
成为对象
var选项={};
var inputs=document.getElementsByClassName('sum');
函数getOptions(){
var optionsArray=[];
for(变量输入选项){
optionsArray.push(选项[key]);
}
返回选项数组;
}
对于(变量i=0;i
在复选框中添加一个id
一款图片分享应用
审查现场监测
谷歌+
LinkedIn
品特烈
四方
Tumblr
广告
使选项
成为对象
var选项={};
var inputs=document.getElementsByClassName('sum');
函数getOptions(){
var optionsArray=[];
for(变量输入选项){
optionsArray.push(选项[key]);
}
返回选项数组;
}
对于(变量i=0;i
在复选框中添加一个id
一款图片分享应用
审查现场监测
谷歌+
LinkedIn
品特烈
四方
Tumblr
广告
使选项
成为对象
var选项={};
var inputs=document.getElementsByClassName('sum');
函数getOptions(){
var optionsArray=[];
for(变量输入选项){
optionsArray.push(选项[key]);
}
返回选项数组;
}
对于(变量i=0;i
在复选框中添加一个id
一款图片分享应用
审查现场监测
谷歌+
LinkedIn
品特烈
四方
var options = [];
var inputs = document.getElementsByClassName('sum'),
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
if(this.checked){
options.push(this.parentNode.textContent.trim());
}
}
var options = {};
var inputs = document.getElementsByClassName('sum');
function getOptions() {
var optionsArray = [];
for (var key in options) {
optionsArray.push(options[key]);
}
return optionsArray;
}
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
if (this.checked) {
options[this.id] = this.parentNode.textContent.trim();
} else {
delete options[this.id];
}
console.log(getOptions());
}
}
<section id="extra-features">
<div class="span3">
<label class="checkbox" for="Checkbox1">
<input type="checkbox" id="Checkbox1" class="sum" value="50" data-toggle="checkbox"> Instagram
</label>
<label class="checkbox">
<input type="checkbox" id="Checkbox2" class="sum" value="50" data-toggle="checkbox"> Review site monitoring
</label>
<label class="checkbox">
<input type="checkbox" id="Checkbox3" class="sum" value="50" data-toggle="checkbox"> Google+
</label>
<label class="checkbox">
<input type="checkbox" id="Checkbox4" class="sum" value="50" data-toggle="checkbox"> LinkedIn
</label>
</div>
<div class="span3">
<label class="checkbox">
<input type="checkbox" id="Checkbox5" class="sum" value="50" data-toggle="checkbox"> Pinterest
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" id="Checkbox6" data-toggle="checkbox"> FourSquare
</label>
<label class="checkbox">
<input id="Checkbox6" type="checkbox" class="sum" value="50" data-toggle="checkbox"> Tumblr
</label>
<label class="checkbox">
<input type="checkbox" class="sum" value="50" id="Checkbox7" data-toggle="checkbox"> Advertising
</label>
</div>
</section>
var options = [];
var inputs = document.getElementsByClassName('sum');
for (var i=0; i < inputs.length; i++) {
inputs[i].onchange = function() {
var txt = this.parentNode.textContent.trim();
options.push(txt);
if(this.checked === false){
while (options.indexOf(txt) !== -1) {
options.splice(options.indexOf(txt), 1);
}
}
}
}