Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.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
Jquery 如何删除具有唯一id的动态创建的div?_Jquery - Fatal编程技术网

Jquery 如何删除具有唯一id的动态创建的div?

Jquery 如何删除具有唯一id的动态创建的div?,jquery,Jquery,我只想发布相关的代码。如果你需要我的全部代码,请告诉我 无论如何,我有以下代码: var deck = []; var c = 0; $('#add').click(function(){ var addToDeck = $('input[name=searchItem]').val(); addToDeck = addToDeck.toLowerCase(); deck.push(addToDeck); $('#save').append('<di

我只想发布相关的代码。如果你需要我的全部代码,请告诉我

无论如何,我有以下代码:

 var deck = [];
 var c = 0;
$('#add').click(function(){
     var addToDeck = $('input[name=searchItem]').val();
     addToDeck = addToDeck.toLowerCase();
     deck.push(addToDeck);
   $('#save').append('<div id="cardList' + (c++) + '">' + database[deck[deck.length-1]].name + '</div>');
 });
但它不起作用。不过我想我的方向是对的


只是重复一下,这是一个纸牌游戏甲板建设应用程序。。。因此,我想让用户更轻松,只需单击带有卡id的div,就可以移除卡组中已经存在的卡。

在第二个代码示例中,
c
未定义或没有您期望的值。不过,这应该是可行的:

$('#save').on('click','[id^=cardList]', function(){
   $(this).remove();
});
它将侦听ID以“
cardList
开头的所有元素上的单击事件,这些元素是该元素的后代
#save
(而不是侦听单击
#save
)。这使得操作更简单,因为
将只引用单击的元素,而您希望删除该元素

您还可以为元素提供一个附加类,并使用它来代替以选择器开头的属性:

// for example
$('<div />', {
    id: 'cardList' + (c++), 
    'class': 'myclass', 
    text: database[deck[deck.length-1]].name
}).appendTo('#save');

// somewhere else

$('#save').on('click','.myclass', function(){
   $(this).remove();
});
//例如
$('', {
id:'cardList'+(c++),
“类”:“myclass”,
文本:数据库[deck[deck.length-1]]。名称
}).appendTo(“#save”);
//其他地方
$('#save')。在('click','.myclass',function()上{
$(this.remove();
});

您还应该考虑是否需要唯一的ID。

在第二个代码示例中,
c
未定义或没有您期望的值。不过,这应该是可行的:

$('#save').on('click','[id^=cardList]', function(){
   $(this).remove();
});
它将侦听ID以“
cardList
开头的所有元素上的单击事件,这些元素是该元素的后代
#save
(而不是侦听单击
#save
)。这使得操作更简单,因为
将只引用单击的元素,而您希望删除该元素

您还可以为元素提供一个附加类,并使用它来代替以选择器开头的属性:

// for example
$('<div />', {
    id: 'cardList' + (c++), 
    'class': 'myclass', 
    text: database[deck[deck.length-1]].name
}).appendTo('#save');

// somewhere else

$('#save').on('click','.myclass', function(){
   $(this).remove();
});
//例如
$('', {
id:'cardList'+(c++),
“类”:“myclass”,
文本:数据库[deck[deck.length-1]]。名称
}).appendTo(“#save”);
//其他地方
$('#save')。在('click','.myclass',function()上{
$(this.remove();
});

您还应该考虑是否需要唯一的ID。

将新的div创建为jQuery对象:

$('#save').append('<div>', {'id':'cardList' + (c++)});
$('#save').append('',{'id':'cardList'+(c++)});

然后它将可访问。

将新div创建为jQuery对象:

$('#save').append('<div>', {'id':'cardList' + (c++)});
$('#save').append('',{'id':'cardList'+(c++)});

那么它就可以接受了。

完美!!正是我想要的。我感谢你的帮助男人:)太好了!!正是我想要的。我感谢你的助手:)你使用的
append
是不正确的,我想你的意思是
。它将具有与OP当前相同的效果,因此不会解决他们的问题。您使用的
append
是不正确的,我假定您的意思是
.append($('',{'id':'cardList'+(c++)})。它将具有与OP当前相同的效果,因此不会解决他们的问题。