设置类后,在jQuery中删除附加的html

时间:2011-10-25 17:21:36

标签: jquery ajax

我有一个带有一些验证的表单,如果它通过,它会添加一个处理类,并附加一些html。

if (valid != '') {
    $('form #form_ajax').removeClass().addClass('error').html('<p>Please correct the errors above.</p>' + valid).fadeIn('fast');
} else {

    $('form #form_ajax').removeClass().addClass('processing').html('<p>Sending…</p>').fadeIn('fast');

    var formData = $('form').serialize();
    submitForm(formData);

}

但是我也有AJAX发送表单,当它添加一个成功类时,我需要之前提到的html消失。

$('form #form_ajax').removeClass().addClass((data.error === true) ? "error" : "success")


if ($('form #form_ajax').hasClass('success')) { setTimeout("$('form #form_ajax').fadeOut('slow')", 2000);

}

我已经尝试将.remove('<p>')放入几个没有运气的地方。我是以正确的方式来做这件事吗?

谢谢

3 个答案:

答案 0 :(得分:0)

你很亲密。尝试在AJAX块的顶部添加:

$('#form_ajax p').remove();

答案 1 :(得分:0)

ajax发送后创建的<p> .remove立刻开始 ajax发送后的数量为ms 所以你试图删除一个尚不存在的对象

最好的方法是使用完整的ajax函数

var request = $.ajax( 
url : "example.php"
,type: "POST" )

    request.done(function() { alert("success");    });
    request.fail(function() { alert("error");      });
    request.always(function() { alert("complete"); });

您可以删除.always()函数中的<p> 一切都结束后它会发射

答案 2 :(得分:0)

将要删除的p标记包装在div中,然后用类名区分

if (valid != '') {
    $('form #form_ajax').removeClass().addClass('error').html('<div id="wrapDiv"><p>Please correct the errors above.</p>' + valid+"</div>").fadeIn('fast');
} else {

    $('form #form_ajax').removeClass().addClass('processing').html('<div id="wrapDiv"><p>Sending…</p></div>').fadeIn('fast');

    var formData = $('form').serialize();
    submitForm(formData);

}

只需使用remove删除要删除p标记

的div
$(".wrapDiv").remove();