jquery clear / reset $(this).html()所以它可以再次使用

时间:2012-08-01 21:02:35

标签: jquery

我有这段代码:

    $('#foo').click(function () {

       var xyz = $('#foo2').val().length;

    if(xyz < 1) {

        $('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);

    } else ......

我对这一行有疑问:

$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000);

如果xyz为0,它会显示一条错误消息,但问题是它只能运行一次,我需要它多次工作,所以如果点击第2次,第3次,第4次等会弹回,有没有办法清除/ reset .html()这样可以再次使用吗?

5 个答案:

答案 0 :(得分:3)

您不需要清除/重置它。所有你需要做的就是展示它。

$('#msg').html('<div id="error">error</div>').show().delay(3000).fadeOut(1000);

.html()在使用.empty()

之前在内部使用innerHTML

答案 1 :(得分:1)

  

有没有办法清除/重置.html()

是的,有。使用.empty()

答案 2 :(得分:0)

$('#msg').html('<div id="error">error</div>').delay(3000).fadeOut(1000, function(){
    $(this).empty()
})

答案 3 :(得分:0)

问题不是.html()它是.fadeOut()你淡出div,现在它已经被隐藏了。 (display:none;)。你需要再次展示它才能淡出它。

您可以通过调用.empty()清除其内容,然后在隐藏邮件后再次显示该内容。或者你可以在调用你的行来延迟/淡出之前显示它。

$('#foo').html('<div id="error">error</div>').show().delay(1000).fadeOut(1000);

这是demo

答案 4 :(得分:0)

$('#msg').empty().html('<div id="error">error</div>').show().fadeOut(1000);