Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将单元格追加回表并删除任务_Javascript_Jquery_Html_Jquery Ui_Local Storage - Fatal编程技术网

Javascript 将单元格追加回表并删除任务

Javascript 将单元格追加回表并删除任务,javascript,jquery,html,jquery-ui,local-storage,Javascript,Jquery,Html,Jquery Ui,Local Storage,您好,我现在有一个脚本,在其中我将一些数据附加到一个表中,然后我在一个输入中键入数据,然后按add按钮,该脚本将该表中的所有单元格保存为您在taskName输入中键入的内容 它被设置为localstorage,并在两个选项中弹出,一个在另一个html页面上,另一个在创建它的html页面上 脚本运行良好,我可以根据我选择的单元格调用这些单元格。唯一的问题是我不能删除任务。我希望能够在html select中选择任务,然后让它将所有单元格附加到html页面中,在该页面中我可以删除所有单元格,然后从l

您好,我现在有一个脚本,在其中我将一些数据附加到一个表中,然后我在一个输入中键入数据,然后按add按钮,该脚本将该表中的所有单元格保存为您在taskName输入中键入的内容

它被设置为localstorage,并在两个选项中弹出,一个在另一个html页面上,另一个在创建它的html页面上

脚本运行良好,我可以根据我选择的单元格调用这些单元格。唯一的问题是我不能删除任务。我希望能够在html select中选择任务,然后让它将所有单元格附加到html页面中,在该页面中我可以删除所有单元格,然后从localStorage中删除任务,或者干脆将其完全删除。这是我的html代码:

<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"
];