Javascript 将单元格追加回表并删除任务
您好,我现在有一个脚本,在其中我将一些数据附加到一个表中,然后我在一个输入中键入数据,然后按add按钮,该脚本将该表中的所有单元格保存为您在taskName输入中键入的内容 它被设置为localstorage,并在两个选项中弹出,一个在另一个html页面上,另一个在创建它的html页面上 脚本运行良好,我可以根据我选择的单元格调用这些单元格。唯一的问题是我不能删除任务。我希望能够在html select中选择任务,然后让它将所有单元格附加到html页面中,在该页面中我可以删除所有单元格,然后从localStorage中删除任务,或者干脆将其完全删除。这是我的html代码:Javascript 将单元格追加回表并删除任务,javascript,jquery,html,jquery-ui,local-storage,Javascript,Jquery,Html,Jquery Ui,Local Storage,您好,我现在有一个脚本,在其中我将一些数据附加到一个表中,然后我在一个输入中键入数据,然后按add按钮,该脚本将该表中的所有单元格保存为您在taskName输入中键入的内容 它被设置为localstorage,并在两个选项中弹出,一个在另一个html页面上,另一个在创建它的html页面上 脚本运行良好,我可以根据我选择的单元格调用这些单元格。唯一的问题是我不能删除任务。我希望能够在html select中选择任务,然后让它将所有单元格附加到html页面中,在该页面中我可以删除所有单元格,然后从l
<div id="taskContainer">
<table id="items-table">
<!--<caption>Task</caption>-->
<tr>
<th>Item</th>
<th>Size</th>
<th colspan="3">Options</th>
</table>
</div>
<label for="loadTask">Load Task:</label>
<label for="taskName">Task Name:</label>
<select id="loadTask">
<option></option>
</select>
<input type="text" id="taskName"></input>
<button type="submit" id="addTask">Add</button>
当我运行此命令时,出现以下错误:
html.replace不是一个函数
这就指向了这条线:
$items-table.appendtask.cells;
但当我把这行改成:
alerttask.cells;
我用它来提醒任务中从未发生过的细胞,这是巨大的进步
我现在唯一需要解决的是:
如何将其追加到表中
只需更改“选择”而不是单击按钮,即可将任务添加到表中
当我使用添加每个任务的小删除按钮删除任务时,能够从所有选择中完全删除任务
另一更新:
我可以在task.cells[1][0]中添加类似的内容,但我不能只添加task.cells,我也不想添加so。。我如何使用添加到每个表行中的每个X按钮逐行追加,如
.append(task.cells[1][0], task.cells[1][1], task.cells[1][2] etc...
上面的代码只是在每个单元格中添加8个,而不是添加到其特定表头下的单元格中。我该怎么做呢
我感谢任何人抽出一天的时间来帮助我。通过一些代码更正,代码运行时没有错误,但我不确定它是否按预期工作 例如: JavaScript 对象tasky由元素填充,其中一个元素是字符串数组中的单元格。我以为你在找空牢房。$.each是一种很好的迭代方法。请参阅更多: 该函数将运行并从每个数组元素接收k作为键和v作为值。例如,如果为tasky.cells分配了以下数组:
var tasks = [
"Wake Up",
"Eat Breakfast",
"Help Mom",
"Drive to Work"
"",
"Go to Bed"
];
您将拥有一个名为tasks的数组,其中包含6个键:0,1,2,3,4,5;和6个要素。使用类似于:
$.each(tasks, function(k, v){
$("#results").append(k + ": " + v + "<br />");
});
如果我们有上述数据并执行此操作,则生成的数组将:
[
"Wake Up",
"Eat Breakfast",
"Help Mom",
"Drive to Work"
"Go to Bed"
];
这也将有一组重新索引的键。请参阅更多:
希望有帮助。欢迎使用堆栈溢出。首先,我将考虑代码的总体逻辑。如果将LoalStalk视为数据表,则添加、删除和排序都在那里进行,并且在进行更改时,只需重新绘制HTML表即可匹配。可能需要更完整的示例,例如一些示例数据或工作示例。另外,为什么要标记jquery ui?还有一个IF语句语法错误:IF tasky.cells=不正确。您可能希望使用逻辑比较:如果tasky.cells==并且,如果tasky.cells是一个数组,您将永远无法将数组与字符串值进行比较。数组可能为空,tasky.cells.length==0,或者每个数组元素的值可能为空字符串。要对此进行测试,您需要迭代每个数组元素并执行比较。我仍然发现此错误无法读取未定义的属性“cells”,它指向此行$items-table.appendtasky.cells;这与我的旧代码遇到的问题是一样的。这是因为我将loadAllTasks和LoadTaskFromStorage函数添加到另一个js文件中,以将相同的任务添加到另一个html select中,然后我可以调用alerttask.cells;当我按下一个按钮时,它实际上会工作并提醒我在每个任务中选择的所有单元格。当我选择时,JSIDLE不会将单元格追加回表中。这是我想要完成的主要任务,这样我就可以从存储器中删除任务
var tasky = loadTaskFromStorage1($("#loadTask").val());
$("#items-table").append(tasky.cells);
$.each(tasky.cells, function(k, v) {
if (v == "") {
delete tasky.cells[k];
}
});
var tasks = [
"Wake Up",
"Eat Breakfast",
"Help Mom",
"Drive to Work"
"",
"Go to Bed"
];
$.each(tasks, function(k, v){
$("#results").append(k + ": " + v + "<br />");
});
0: Wake Up<br />
1: Eat Breakfast<br />
2: Help Mom<br />
3: Drive to Work<br />
4: <br />
5: Go to Bed
$.each(tasks, function(k, v) {
if (v == "") {
tasky.cells.splice(k, 1);
}
});
[
"Wake Up",
"Eat Breakfast",
"Help Mom",
"Drive to Work"
"Go to Bed"
];