Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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 动态追加DOM元素,如果已经添加,则无需追加_Javascript_Jquery - Fatal编程技术网

Javascript 动态追加DOM元素,如果已经添加,则无需追加

Javascript 动态追加DOM元素,如果已经添加,则无需追加,javascript,jquery,Javascript,Jquery,我试图在单击按钮时将一个div动态添加到父div。但一旦创建了该div,则在单击按钮时不应再次创建另一个相同的子div。这就是我想做的 $("#b1").click(function(){ $("#d1").has("#d2").remove($(this)); $("#d1").append($("<div>",{id:"d2",text:"Dynamically added Second DIV"})); }); $(“#b1”)。单击(

我试图在单击按钮时将一个div动态添加到父div。但一旦创建了该div,则在单击按钮时不应再次创建另一个相同的子div。这就是我想做的

$("#b1").click(function(){
        $("#d1").has("#d2").remove($(this));
        $("#d1").append($("<div>",{id:"d2",text:"Dynamically added Second DIV"}));
    });
$(“#b1”)。单击(函数(){
$(“#d1”)。已(“#d2”)。删除($(此));
$(“#d1”).append($(“”,{id:“d2”,text:“动态添加的第二个DIV”});
});
它正在工作,但我在控制台中看到“TypeError:expr.replace不是一个函数”…请建议。
谢谢您……

单击按钮一次后,您似乎想删除按钮
#b1
。为什么不在单击按钮时删除它并添加元素呢?像这样:

$(“#b1”)。单击(函数(){
$(this.remove();
$(“#d1”).append($(“”,{id:“d2”,text:“动态添加的第二个DIV”});
});
#d1{
背景颜色:灰色;
}


按钮
单击一次按钮后,您似乎想将其删除。为什么不在单击按钮时删除它并添加元素呢?像这样:

$(“#b1”)。单击(函数(){
$(this.remove();
$(“#d1”).append($(“”,{id:“d2”,text:“动态添加的第二个DIV”});
});
#d1{
背景颜色:灰色;
}


按钮
您可以检查
子项。长度
以查找是否存在子项

$(“#b1”)。单击(函数(){

如果($(“#d1”).children(“#d2”).length您可以检查
children.length
以查找是否存在子级

$(“#b1”)。单击(函数(){
如果($(“#d1”)。儿童(“#d2”)。长度
函数addElement(){
var parent=$('#container')[“0”];
var elem=document.createElement('div');
元素setAttribute('id','child');
var text=document.createTextNode(“子节点”);
元素附加(文本);
如果(!parent.children.length>0){
父项追加(elem);
}
}

父母亲
单击
函数addElement(){
var parent=$('#container')[“0”];
var elem=document.createElement('div');
元素setAttribute('id','child');
var text=document.createTextNode(“子节点”);
元素附加(文本);
如果(!parent.children.length>0){
父项追加(elem);
}
}

父母亲

单击
我想保留该按钮。实际上,在一个常用的动态创建分区中单击时,我有两个按钮显示不同的内容。因此,在这种情况下,删除该按钮将不起作用case@Pranjit添加了一个变体,其中按钮未被删除,但在生成一个元素后将不工作。使用.find()它正在工作$(“#d1”).find('div[id=“d3”]').remove();$(“#d1”).append($(“”,{id:“d3”,text:“动态添加的第三个div”}));有效吗?为什么要删除并再次添加?为什么不在已经添加的情况下添加,就像我所做的那样?@PranjitYa在我的情况下也有效。你的一个似乎更好。我想保留该按钮。实际上,在一个常见的动态创建的div中单击时,我有两个按钮显示不同的内容。因此,删除该按钮在c中不起作用ase@Pranjit添加了一个变量,其中按钮未被删除,但在生成一个元素后将不起作用。使用.find()它正在使用$(“#d1”).find('div[id=“d3”]”)。remove();$(“#d1”).append($(“”,{id:'d3',text:“动态添加的第三个div”}));它有效吗?为什么要删除并再次添加?如果已经添加了,为什么不像我所做的那样添加呢?@PranjitYa它在我的情况下也有效。你的一个似乎更好。这一个工作正常$(“#b1”)。单击(function(){$(“#d1”)。查找('div[id=“d2”])。删除()$(“#d1”).append($(,{id:“d2”,text:“动态添加的第二个DIV”}));});为什么要删除并再次添加?实际上,我有两个按钮将不同的内容附加到一个常用的动态创建的div上。因此,当单击btn1时,它将检查是否存在由btn2创建的常用div,如果创建了,则将其删除并附加新内容(与btn2的推理相同)。我可以使用.empty()但出于某种原因,我想再次删除并追加。问题应该很清楚,并且应该包含所有上下文。谢谢这一个运行良好$(“#b1”)。单击(函数(){$(“#d1”)。查找('div[id=“d2”]”)。删除();$(“#d1”)。追加($(,{id:“d2”),text:“动态添加的第二个DIV”}];});为什么要删除并再次添加?实际上,我有两个按钮将不同的内容附加到一个常用的动态创建的DIV上。因此,当单击btn1时,它将检查是否存在由btn2创建的常用DIV,如果创建了,则将其删除并附加新内容(btn2的推理相同).我也可以使用.empty(),但出于某种原因,我想删除并再次追加。问题应该清楚,并且应该包含所有上下文。谢谢