2017-08-25 371 views
0

我有一些代码,删除一个项目,并将3个字母的'应用程序代码'添加到一个cookie,该网站然后读取此cookie不下次绘制它。jQuery删除()不删除元素

我正在尝试编写代码,以便在用户单击'隐藏按钮'(这是我试图删除的div内部)时从DOM中删除该项目。

的JavaScript

$('.HideLinkButton').click(function(e){ 
e.preventDefault(); 
var Enabled = $(this).hasClass('ButtonToggled'); 
var Favoured = $(this).closest('.Item a').hasClass('btn-favourite'); 
if (!Favoured) { 
    if (Enabled) { 
     removeHiddenLink($(this).closest('.Item').data('application-code')); 
     //$(this).removeClass('ButtonToggled'); 
     $(this).closest('.Item a').removeClass('Hidden'); 
     $(this).closest('.Item').remove(); 

     //Adds hidden to class 
     $(this).closest('.Item a').addClass('Hidden'); 
     $(this).closest('.Item').addClass('Hidden'); 

     //Removes element completely 
     $(this).children('.Item').remove(); 

    } else { 
     //Adds application code to 'hidden'cookie. 
     addHiddenLink($(this).closest('.Item').data('application-code')); 

     //Adds 'buttontoggled' to HideButton div. 
     $(this).addClass('ButtonToggled'); 

     //Removes element completely 
     $(this).children('.Item').remove(); 
    } 
} 

});

出于某种原因,最后一个.remove()线不起作用

我说的这一个:

$(this).children('.Item').remove(); 

当我刷新页面,该项目已经一去不复返了。这是因为它已将应用程序代码放入'隐藏'cookie中,因此C#脚本知道不会将其写入屏幕。

它只是单击时不删除元素。

我在网上找不到任何东西,或者没有任何理由不应该这样做。

谢谢!

+1

你可以张贴HTML的按钮和DIV – Niladri

+0

对不起,我不知道如何添加代码标签,我是新来 –

回答

0

尝试改变行:

$(this).find('.Item').remove(); 
+0

一点也没有什么都不做,这个问题仍然适用。 –

+0

类.Item可以不是$(this)的孩子吗?你可以尝试类似$(this).parent。()。find('。Item')。remove(); 尝试向上移动DOM直到可以访问类 –

+0

啊!我将它改为.closest('。item a'),它工作正常!谢谢! –