Javascript 删除项目后,我应该如何更新标记?
我正在开发我的Google chrome扩展的Javascript 删除项目后,我应该如何更新标记?,javascript,jquery,google-chrome-extension,Javascript,Jquery,Google Chrome Extension,我正在开发我的Google chrome扩展的联系人模块。用户可以添加和删除联系人。一切都是通过JavaScript和jQuery完成的 这个问题更多的是关于逻辑,所以不要被代码吓倒。 以下是添加联系人的方式: function addContact(name){ var n = incContactNum(); chrome.extension.getBackgroundPage().setItem('contact'+n+'', name); contacts[n] = name;
联系人
模块。用户可以添加和删除联系人。一切都是通过JavaScript和jQuery完成的
这个问题更多的是关于逻辑,所以不要被代码吓倒。
以下是添加联系人的方式:
function addContact(name){
var n = incContactNum();
chrome.extension.getBackgroundPage().setItem('contact'+n+'', name);
contacts[n] = name;
}
联系人总数应该增加,因此我们现在有n
个联系人。此外,我们还更新了联系人数组
因此SQLite项表如下所示:
------------------------
| key value |
------------------------
| contactNum 3 |
------------------------
| contact1 Test1 |
------------------------
| contact2 Test2 |
------------------------
| contact3 Test3 |
------------------------
------------------------
| key value |
------------------------
| contactNum 2 |
------------------------
| contact1 Test1 |
------------------------
| contact3 Test3 |
------------------------
删除一行时,如第2行,表格如下所示:
------------------------
| key value |
------------------------
| contactNum 3 |
------------------------
| contact1 Test1 |
------------------------
| contact2 Test2 |
------------------------
| contact3 Test3 |
------------------------
------------------------
| key value |
------------------------
| contactNum 2 |
------------------------
| contact1 Test1 |
------------------------
| contact3 Test3 |
------------------------
如您所见,contactNum
是递减的。我们现在有两个项目,但第二个项目有3作为索引,但它应该从contact3更改为contact2。当您看到my delete函数时,可能会意识到问题:
function removeContact(value){
contacts = new Array(getValue("contactNum"));
for(i = 1; i <= parseInt(getValue("contactNum")); i++){
if(getValue("contact"+i) == value){
chrome.extension.getBackgroundPage().deleteItem("contact"+i);
decContactNum();
break;
}
}
}
函数removeContact(值){
联系人=新数组(getValue(“contactNum”);
对于(i=1;i你有两个选择。第一个选择是我在你问题下面的评论中提到的
- 修改后台页面中的代码,以减少要删除的键后面的每个键
函数removeContact(值){
var len=getValue(“contactNum”);
var=0;
对于(i=1;i
- 只有在顺序无关紧要的情况下,这种方法才行。将要删除的记录(数据部分)与最后一条记录交换,然后按照您在代码发布中所做的方式删除最后一条记录
函数removeContact(值){
var len=getValue(“contactNum”);
对于(i=1;i你有两个选择。第一个选择是我在你问题下面的评论中提到的
- 修改后台页面中的代码,以减少要删除的键后面的每个键
函数removeContact(值){
var len=getValue(“contactNum”);
var=0;
对于(i=1;i
- 只有在顺序无关紧要的情况下,这种方法才行。将要删除的记录(数据部分)与最后一条记录交换,然后按照您在代码发布中所做的方式删除最后一条记录
函数removeContact(值){
var len=getValue(“contactNum”);
对于(i=1;i您可能需要修改背景页面代码,为x>i
减少i
中的x,您可能需要修改背景页面代码,为x>i
减少i
中的xi
是要删除的项目。是的,我知道,但如何删除?这是我的背景页代码