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