附加错误消息,想先清除div

时间:2009-06-06 22:50:14

标签: jquery

我的HTML看起来像js看起来像这样:

<div class="container"></div>

var html = "<div class="error">hello</div>";

$(".container").append( $(html) );

问题是我没有先用class = container清除div里面的html,所以我不断向该区域添加消息。

如何首先清除div class =“container”中的任何内容,然后附加我的'html'div?

5 个答案:

答案 0 :(得分:10)

假设你想要'替换'div中的内容,我认为你需要使用的是:

$(".container").html( html );

更简洁的方法是:

$errorDiv = $('<div>hello</div>').addClass('error');
$(".container").html($errorDiv.html());

这样可以为您提供错误div的参考。

答案 1 :(得分:4)

你可以打电话

$(".container").empty();
在附加新的div元素之前

参考: http://docs.jquery.com/Manipulation/empty

答案 2 :(得分:2)

我冒昧地假设您正在使用容器获取状态消息,然后动态创建错误/成功消息以进入容器div。如果是这样,我建议改为采用以下方法:

HTML:

<div id="status"></div>

使用Javascript:

function showError(msg) {
    $('#status').html(msg).addClass('error');
}
function showStatus(msg) {
    $('#status').html(msg).removeClass('error');
}

请注意以下事项:

  • 正如Paolo在他的评论中提到的那样,通过<div>引用id更为有效 - 这直接取决于javascript document.getElementById()方法,这种方法比在整个DOM树上搜索一个元素......
  • 当你为每次通话清除<div class="container">的内容时,我认为没有理由保留它。您也可以只操作html内容单个div的css类。更快,并且在你的标记中看起来更好=)
  • 您显然不需要在单独的方法中显示状态/错误消息逻辑 - 我只是为了清晰起见而这样做。

答案 3 :(得分:1)

这就是我的方式

$(document).ready(function() {
        $('.err').click(function() {
            $('.err').empty().text('Massive Error has occured. ooof!!!');
        });
    });

答案 4 :(得分:0)

是的,你是对的。我的意思是说要追加方法。

这样:

$(".container").empty().append(htmlOfyourerror);