如何在ajax成功时删除并显示这些元素?
我想在成功时删除这些元素
<a class="hyper" id="1234567890">
<div class="mine">
<img src="moo.png"/>
</div>
</a>
并在成功时显示此元素
<a class="success" id="1234567890">
<div class="sura">
<img src="naa.png"/>
</div>
</a>
这是我的ajax post
代码
$('body').on('click','.hyper',function() {
var my_id = $(this).attr('id');
var postData = 'mydata='+my_id+'&time=now';
$.ajax({
type: "POST",
url: "my_post.php",
data: postData,
cache: false,
success: function()
{
}
});
})
当我使用关注Zentoaku
$('#1234567890').removeClass('hyper').addClass('success').html('<div class="sura"><img src="naa.png"/></div>');
成功后我的元素显示
<a class="hyper" id="1234567890">
<div class="mine">
<img src="moo.png"/>
</div>
<a class="success" id="1234567890">
<div class="sura">
<img src="naa.png"/>
</div>
</a>
</a>
但成功之后我想看到这个
<a class="success" id="1234567890">
<div class="sura">
<img src="naa.png"/>
</div>
</a>
我该怎么办?
答案 0 :(得分:2)
要隐藏,您可以使用以下内容:
success: function()
{
$('.hyper').hide();
}
您还可以使用remove()
方法从DOM中完全删除元素。
显示使用此:
success: function()
{
$('.success').show();
}
如果您对这两个元素使用不同的ID,则可以使用Id
以及您的选择器。
注意:当您的问题中显示的网页上已存在html
代码时,此解决方案将适用。
答案 1 :(得分:0)
jQuery具有切换功能,您可以使用该功能切换项目的可见性。
您的代码可能如下所示:
$('body').on('click','.hyper',function() {
var my_id = $(this).attr('id');
var postData = 'mydata='+my_id+'&time=now';
$.ajax({
type: "POST",
url: "my_post.php",
data: postData,
cache: false,
success: function(my_id)
{
$('#'+my_id+'.hyper').toggle();
$('#'+my_id+'.success').toggle();
}
});
})
答案 2 :(得分:-1)
$('#1234567890').removeClass('hyper').addClass('success');
$('#1234567890 > div').removeClass('mine').addClass('sura');
$('#1234567890 > div > img').attr('src', 'naa.png')
OR
$('#1234567890').removeClass('hyper').addClass('success').html('<div class="sura"><img src="naa.png"/></div>');