我的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?
答案 0 :(得分:10)
假设你想要'替换'div中的内容,我认为你需要使用的是:
$(".container").html( html );
更简洁的方法是:
$errorDiv = $('<div>hello</div>').addClass('error');
$(".container").html($errorDiv.html());
这样可以为您提供错误div的参考。
答案 1 :(得分:4)
答案 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');
}
请注意以下事项:
<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);