Javascript JS:目标并删除动态添加的元素

Javascript JS:目标并删除动态添加的元素,javascript,jquery,Javascript,Jquery,我假设这是一个常见的问题,但我还没有在其他线程中找到答案 这里的基本思想/目标是,如果一项任务被标记为重要,它将被添加到象限1中。如果不是,它将被添加到象限2中。任务完成后,可以通过单击它们来关闭任务 HTML: 我有一个简单的页面: 文本输入,即任务 复选框,即重要 提交按钮,即提交任务 两个div象限1和象限2。 JS: 我的问题是,由于我对两个段落元素使用相同的id,即任务负责人,如果我一次向页面添加多个任务,我不能删除多个任务 我的问题是:如何动态地将元素添加到DOM中,同时为其提供唯一

我假设这是一个常见的问题,但我还没有在其他线程中找到答案

这里的基本思想/目标是,如果一项任务被标记为重要,它将被添加到象限1中。如果不是,它将被添加到象限2中。任务完成后,可以通过单击它们来关闭任务

HTML: 我有一个简单的页面:

文本输入,即任务 复选框,即重要 提交按钮,即提交任务 两个div象限1和象限2。 JS:

我的问题是,由于我对两个段落元素使用相同的id,即任务负责人,如果我一次向页面添加多个任务,我不能删除多个任务


我的问题是:如何动态地将元素添加到DOM中,同时为其提供唯一的id或选择器,以便每个任务都可以唯一地定位和结束?

您需要为每个新添加的元素动态地应用新id

//New length every time you click
var newLength = $('[id^=taskHolder]').length + 1;
//Apply the new ID
$("#quadrant1").append(
     "<p id='taskHolder+newLength+'> New "  + newLength + " </p>");
$“提交按钮”。单击函数{ //每次单击时都会新建长度 var newLength=$'[id^=taskHolder]'.length+1; //应用新ID $quadrant1.5附加

New+newLength+

; };

新1


按钮您需要为每个新添加的元素动态应用新ID

//New length every time you click
var newLength = $('[id^=taskHolder]').length + 1;
//Apply the new ID
$("#quadrant1").append(
     "<p id='taskHolder+newLength+'> New "  + newLength + " </p>");
$“提交按钮”。单击函数{ //每次单击时都会新建长度 var newLength=$'[id^=taskHolder]'.length+1; //应用新ID $quadrant1.5附加

New+newLength+

; };

新1


按钮使用全局变量“counter”并在每次单击时增加其值,然后将其附加到“taskHolder”中。现在每个任务都有了唯一的id

要选择,请使用startwith类型选择器

var cnt = 0;
$(document).ready( function () {
  $('#submitTask').on("click", function() {
    cnt++;
    var task = $("#task").val();
    var important = $("#important").prop("checked");

    var addToQuadrant = function (task, important) {
      if (important == true) {
        $("#quadrant1").append(
          "<p id='taskHolder" + cnt + "' > " + task + " </p>");
      } else if (important == false) {
        $("#quadrant2").append(
          "<p id='taskHolder" + cnt + "'> " + task + " </p>");
  };

  addToQuadrant(task, important);

  $('[id^=taskHolder]').on("click", function() {
     $(this).slideUp();
};

});

使用全局变量“counter”并在每次单击时增加其值,然后将其附加到“taskHolder”中。现在每个任务都有了唯一的id

要选择,请使用startwith类型选择器

var cnt = 0;
$(document).ready( function () {
  $('#submitTask').on("click", function() {
    cnt++;
    var task = $("#task").val();
    var important = $("#important").prop("checked");

    var addToQuadrant = function (task, important) {
      if (important == true) {
        $("#quadrant1").append(
          "<p id='taskHolder" + cnt + "' > " + task + " </p>");
      } else if (important == false) {
        $("#quadrant2").append(
          "<p id='taskHolder" + cnt + "'> " + task + " </p>");
  };

  addToQuadrant(task, important);

  $('[id^=taskHolder]').on("click", function() {
     $(this).slideUp();
};

});
使用唯一id 完成时隐藏$this的目标项。 $document.ready函数{ var addToQuadrant=功能任务,重要{ 如果重要==真{ var taskid=$quadrant1.length+1; $quadrant1.5附加

+task+

; }else if important==false{ var imptaskid=$quadrant2.length+1; $quadrant2.0附加

+task+

; }; }; $'submitTask'。单击一次,函数{ var task=$task.val; var-important=$important.propchecked; 添加象限任务,重要; }; $'body'。单击时,'.taskHolder',函数{ $this.slideUp; }; }; 重要任务 任务 任务: 重要的 使用唯一id 完成时隐藏$this的目标项。 $document.ready函数{ var addToQuadrant=功能任务,重要{ 如果重要==真{ var taskid=$quadrant1.length+1; $quadrant1.5附加

+task+

; }else if important==false{ var imptaskid=$quadrant2.length+1; $quadrant2.0附加

+task+

; }; }; $'submitTask'。单击一次,函数{ var task=$task.val; var-important=$important.propchecked; 添加象限任务,重要; }; $'body'。单击时,'.taskHolder',函数{ $this.slideUp; }; }; 重要任务 任务 任务: 重要的 使用:

而不是

$('.taskHolder').slideUp();
在事件处理程序中,它引用事件应用到的元素

以下是我将用于实现整个功能的最基本代码:

$document.readyfunction{ var task=$task; var cb=$重要; $button.clickfunction{ $, { 文本:task.val, 类别:任务 }.appendTocb[0]。选中?象限1:象限2; }; $body.onclick、.task、function{ $this.slideUp500,函数{$this.remove;}; }; }; div{边框:薄黑色实体;边距:4px;最小高度:20px;} 任务: 重要的 添加 使用:

而不是

$('.taskHolder').slideUp();
在事件处理程序中,它引用事件应用到的元素

以下是我将用于实现整个功能的最基本代码:

$document.readyfunction{ var task=$task; var cb=$重要; $button.clickfunction{ $, { 文本:task.val, 类别:任务 }.appendTocb[0]。选中?象限1:象限2; }; $body.onclick、.task、function{ $this.slideUp500,函数{$this.remove;}; }; }; div{边框:薄黑色实体;边距:4px;最小高度:20px;} 助教 k: 重要的 添加
因为我用的是同一个id,所以永远不要这样做。根据定义,id应该是唯一的。但是,如果您想通过单击隐藏/删除已单击的项目,您根本不需要ID,您可以使用一个公共类,然后在事件处理程序中使用它…@nnnnnn抱歉,我匆忙编写了这个示例。我实际上没有使用相同的id,但我使用相同的类,并且有相同的问题。我应该在哪里添加“this”?请回答您的问题以显示您正在使用的实际类。此外,JS中的缩进有点奇怪:看起来您错过了else if中的closing}和结尾处的closing}。请检查这些细节。因为我使用相同的id-永远不要这样做。根据定义,id应该是唯一的。但是,如果您想通过单击隐藏/删除已单击的项目,您根本不需要ID,您可以使用一个公共类,然后在事件处理程序中使用它…@nnnnnn抱歉,我匆忙编写了这个示例。我实际上没有使用相同的id,但我使用相同的类,并且有相同的问题。我应该在哪里添加“this”?请回答您的问题以显示您正在使用的实际类。此外,JS中的缩进有点奇怪:看起来您错过了else if中的closing}和结尾处的closing}。请检查这些细节。
$('.taskHolder').slideUp();