.errorContainer
div находится внутри .overlay
div.Когда вы удаляете оверлей в конце своей функции, errorContainer также удаляется.Кроме этого, похоже, что .html(errorMsg)
работает нормально (если оно по-прежнему вызывает ошибку, пожалуйста, укажите, что идет не так).
Перечитав ваш вопрос, я не смог понять поток вашей программы: выдобавить этот div, когда ошибка уже известна, и закрыть его, когда вы нажмете «X»?Если это так, я бы предложил сделать что-то вроде этого:
var errorMsg = "";
var ferrorMsg = "Please say your first name" + "<br>";
var aerrorMsg = "Please type address" + "<br>";
var eerrorMsg = "Please type a valid email Address" + "<br>"
if($("#name").val() == "") {
errorMsg += ferrorMsg;
}
if($("#address").val() == "") {
errorMsg += aerrorMsg;
}
if($("#email").val() == "") {
errorMsg += eerrorMsg;
}
// Adapting Diego's answer:
$("<div class='overlay'><div class='errorContainer'></div><div><a href='javascript:void(0);' class='cross'>X</a><div></div>")
.appendTo($("body"))
.find(".errorContainer")
.html(errorMsg)
.end()
.find(".cross")
.click(function(e) {
e.preventDefault();
$(this).closest(".overlay").remove();
});