我有一个显示在新div中的图像和名称。但是,我遇到了一个问题,下次当一个人输入名称和图片并按下保存时,他们的userDiv会显示他们的名字加上以前的用户名。例如,有两个用户:用户1和用户2.当我选择所有用户并遍历结果时,名称的记录方式不同。用户1显示为“用户1”,但用户2显示为“用户1用户2”。从快速浏览一下,我认为这是因为innerHTML从父div获取所有内容,但我不确定。
var htmlStr="";
var theID;
var theName;
var thePhoto;
var len = results.rows.length;
console.log(len);
for(var i = 0; i < len; i++){
theID = results.rows.item(i).id;
console.log(theID);
theName = results.rows.item(i).username;
htmlStr += theName;
console.log(theName);
thePhoto = results.rows.item(i).imagepath;
console.log(thePhoto);
var imageHold= new Image();
imageHold.src = thePhoto;
console.log("this is the src:"+imageHold.src);
var userDiv = document.createElement("div");//Create the div
userDiv.innerHTML=htmlStr;
userDiv.appendChild(imageHold);
document.getElementById('showUsers').appendChild(userDiv);//append it to the document
userDiv.style.display = 'block';
答案 0 :(得分:2)
删除var htmlStr="";
并在每次迭代时在循环内声明它。所以改变
htmlStr += theName;
到
var htmlStr = theName;
这应解决您的问题