我有一个函数可以获取未检查的列表中的所有项目,并从中创建一个新数组。
// Allows user to remove keywords from the locaStorage
$('#clearChecked').click(function() {
currentArray = [];
$('.check').each(function() {
var $curr = $(this);
if (!$curr.is(':checked')) {
var value = $curr.parent().text();
currentArray.push(value);
localStorage.setItem('keyWords', JSON.stringify(currentArray));
loadKeyWords();
} else {
$curr.parent().remove();
}
});
});
问题是,如果我检查所有项目,它不会删除任何。或者,如果剩下一个项目,它不会让我删除最后一项。
但只要剩下一件物品,它就可以让我删除任意数量的物品。
如何更改我的功能以允许我删除数组中的最后一项或所有项目(如果已选中)。
我正在输出这样的数组,
// Generate random id for id of keywords
function guidGenerator() {
var S4 = function() {
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
};
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}
var x = guidGenerator();
$('#keyWords').prepend('<li class="list-group-item" data-style="button"><input id="'+ x +'" class="check" name="check" type="checkbox"><label for="'+ x +'">'+localArray[i]+'</label></li>');
在html文件中
<button id="clearChecked">Clear Checked Items</button>
<ul id="keyWords">
<li class="list-group-item" data-style="button">
<input id="4667ac55-5de4-df61-9b82-9b50c728adea" class="check" name="check" type="checkbox">
<label for="4667ac55-5de4-df61-9b82-9b50c728adea">qedfeqdeqdeq</label>
</li>
</ul>
答案 0 :(得分:1)
只需在复选框中点击事件添加代码:
print df
game team role hw aw year wins expanding_mean
0 1 A home 0 1 2000 0 NaN
1 1 B away 0 1 2000 1 NaN
2 2 B home 1 0 2000 1 1.000000
3 2 A away 1 0 2000 0 0.000000
4 3 B home 0 0 2000 0 1.000000
5 3 A away 0 0 2000 0 0.000000
6 4 A home 1 0 2000 1 0.000000
7 4 B away 1 0 2000 0 0.666667
8 5 B home 0 1 2001 0 NaN
9 5 A away 0 1 2001 1 NaN
10 6 A home 1 0 2001 1 1.000000
11 6 B away 1 0 2001 0 0.000000
12 7 A home NaN NaN 2001 NaN 1.000000
13 7 B away NaN NaN 2001 NaN 0.000000
答案 1 :(得分:0)
我解决了这个问题(至少在我身边):
ID
和标签的for
更改为不带任何空格的唯一字符串在您发布的jQuery下面添加了});
,因为它没有关闭主要的原始函数。
<button id="clearChecked">Clear Checked Items</button>
<ul id="keyWords">
<li class="list-group-item" data-style="button">
<input id="link_0" class="check" name="check" type="checkbox">
<label for="link_0">I am a link</label>
</li>
<li class="list-group-item" data-style="button">
<input id="link_1" class="check" name="check" type="checkbox">
<label for="link_1">I am a link</label>
</li>
<li class="list-group-item" data-style="button">
<input id="link_2" class="check" name="check" type="checkbox">
<label for="link_2">I am a link</label>
</li>
</ul>
$('#clearChecked').click(function() {
currentArray = [];
$('.check').each(function() {
var $curr = $(this);
if (!$curr.is(':checked')) {
var value = $curr.parent().text();
currentArray.push(value);
localStorage.setItem('keyWords', JSON.stringify(currentArray));
loadKeyWords();
} else {
$curr.parent().remove();
}
}); // only closing the $('.check').each(function() { function
}); // closing the $('#clearChecked').click(function() { function
Check out this fiddle to see it working
编辑:
关于您发布的GUID
...修复它。
function makeid()
{
var text = "";
var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
for( var i=0; i < 5; i++ )
text += possible.charAt(Math.floor(Math.random() * possible.length));
return text;
}