我有这段代码,看起来是正确的,但是为什么新的div没有出现在父div中。谁能给我解释一下原因吗?
var myGame = {
fieldSize: 10,
drawField: function() {
setInterval(function () {
var parent = document.getElementById('parent')
parent.innerHTML = '';
for (var i=0; i<this.fieldSize; i++) {
var row = document.createElement('div');
for (var j=0; j<this.fieldSize; j++) {
var field = document.createElement('div');
field.className = 'field';
row.appendChild(field);
}
parent.appendChild(row);
}
}, 3000)
}
}
myGame.drawField()<div id="parent"></div>
发布于 2018-10-03 20:44:57
您的setInterval创建了另一个上下文,因此this.fieldSize是undefined
var myGame = {
fieldSize: 10,
drawField: function() {
setInterval(() => {
var parent = document.getElementById('parent')
parent.innerHTML = '';
for (var i=0; i<this.fieldSize; i++) {
var row = document.createElement('div');
for (var j=0; j<this.fieldSize; j++) {
var field = document.createElement('div');
field.className = 'field';
row.appendChild(field);
}
parent.appendChild(row);
}
}, 3000)
}
}
myGame.drawField()<div id="parent"></div>
https://stackoverflow.com/questions/52635415
复制相似问题