当单击按钮时,我的 testResults()
函数被触发。它按其应有的方式创建 div
。我希望每次单击按钮时都会清除#parent div。但它只在您第一次单击时才会执行。第二次单击 #parent
时,div
不会被清除,只是会附加新的 div
。
这是我的代码:
// DECLARATIONS
var searchActive = false,
emailAddresses = [],
firstName,
lastName,
domainName;
// MAIN FUNCTION
function testResults (form) {
// TRYING TO DELETE INNERHTML EVERYTIME SOMEONE CLICKS
// VARIANT 1 --> NOT WORKING
document.getElementById("parent").innerHTML = "";
// VARIANT 2 --> NOT WORKING
$( "#parent" ).html("");
// VARIANT 3 --> NOT WORKING ASWELL
var div = document.getElementById('parent');
while(div.firstChild){
div.removeChild(div.firstChild);
}
// CHECK IF ALL FIELDS ARE FILLED IN (INCOMPLETE)
if (!form.firstName.value) {
alert("Bitte fülle alle Felder aus!");
}
if (! form.lastName.value) {
alert("Bitte fülle alle Felder aus!");
}
if (! form.domainName.value) {
alert("Bitte fülle alle Felder aus!");
}
// SAVE VALUES FROM THE FIELDS
firstName = form.firstName.value;
lastName = form.lastName.value;
domainName = form.domainName.value;
// STRING MODIFICATIONS
firstName = firstName.toLowerCase();
firstName = firstName.replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue");
lastName = lastName.toLowerCase();
lastName = lastName.replace(/ä/g,"ae").replace(/ö/g,"oe").replace(/ü/g,"ue").replace(/ß/g,"ss");
// ADD ADDRESSES TO ARRAY
emailAddresses.push(firstName + "." + lastName + "@" + domainName);
emailAddresses.push(firstName + "@" + domainName);
// ITERATE OVER ARRAY, CREATE A DIV FOR EACH EMAILADDRESS
for (i = 0; i < emailAddresses.length; i++) {
$( "#parent" ).append( "<div class='alert alert-info'>" + emailAddresses[i] + "</div>");
}
}
即使我尝试了 3 种不同的变体,为什么它没有清除#parent div?控制台也是空的。
jsfiddle链接:http://jsfiddle.net/zdeahcqc/
最佳答案
您没有清除数组。电子邮件地址 = [];工作正常http://jsfiddle.net/zdeahcqc/5/
function testResults (form) {
emailAddresses = [];
关于javascript - 为什么它不清除我的 div? (Javascript 和 Jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25807601/