您好我无法在点击具有字符串值的元素时找出如何从字符串中删除特定值。它是我的待办事项列表。
if (window.localStorage.fullName !== undefined) {
alert('Your browser does not support localStorage');
} else {
$(function () {
console.log('localSorage compitability detected. proceeding...');
全球大战&功能
var tdli = [];
添加列表项
$('#tdladd').click(function () {
$('.todolist ul ul').append("<li class='tdli'>" + $('#tdlinput').val() + "</li>");
tdli.push($('#tdlinput').val());
$('#tdlinput').val('');
var array = tdli + "";
localStorage.setItem('tdlis', array);
console.log(array);
$('#todolist').hide().fadeIn('fast');
});
删除列表项
$('li').click(function () {
var itemtoRemove = $(this);
tdli.splice($.inArray(itemtoRemove, tdli), 1);
console.log(tdli);
});
$('#clearall').click(function () {
localStorage.clear();
location.reload();
});
加载列表项
var tdlitems = localStorage.getItem('tdlis');
var array = tdlitems.split(',');
tdli.push(array);
for (var i = 0; i < array.length; i++) {
array[i] + "<br>";
$('.todolist ul ul').append("<li>" + array[i] + "</li>");
};
console.log(array);
});
}
答案 0 :(得分:2)
假设tdli
是一个jQuery包装集(它本身就是一个类似数组的对象),它将存储 DOM 节点而不是另一个jQuery对象。这意味着,就像
var itemtoRemove = this;
你应该没事。
在您发布完整代码后,我们可以看到您实际将string values
推送到tdli
数组中,但您分别尝试.splice()
个对象DOM nodes
,这当然没有任何意义(比较苹果和橙子)。