<div id="history">
<div id="histheading" class="pull-left">History</div>
<div id='hist'><canvas id="test"></canvas></div>
</div>
var left=100;
var t=-150;
function doHistory_double()
{
var data = localStorage.getItem('HTML5TTT');
data = JSON.parse(data);
data.reverse();
var container = document.getElementById('hist');
// Clear the container
while (container.hasChildNodes())
{
container.removeChild(container.firstChild);
}
// Loop through the data
canvID = 0;
for(x in data)
{
var i=1;
var hist = data[x];
if(hist.datetime == undefined)
break;
var elem = document.createElement('div');
elem.style.marginLeft=lef + "px";
if(i==1){
elem.style.marginTop=t + "px";
}
else
elem.style.marginTop="0px";
i++;
elem.innerHTML = "<p><strong>"+hist.datetime+"</strong><br>Winner: "+hist.winner+"<br><canvas id='can"+canvID+"' width='100px' height='100px' ></canvas>";
container.appendChild(elem);
drawMiniBoard_double(document.getElementById("can"+canvID),hist.board);
canvID++;
lef+=310;
}
}
Это мой код javscript. hist - это div, показывающий историю игры. Я получаю ошибку, поскольку не могу вызвать метод hasChildNodes null. Я получаю эту ошибку после того, как я сделал что-то, используя переменную left и t, т.е. margin-top и margin-left. Помогите мне решить эту проблему.
его отлично работает.. проверьте скрипку
Я связываю метод клика, а затем вызываю предоставленный вами код и предупреждаю, чтобы показать, что мы получили ребенка внутри контейнера или нет.
--HTML--
<div id="history">
<div id="histheading" class="pull-left">History</div>
<div id='hist' onclick=f()><canvas id="test"></canvas></div>
</div>
- JS -
function f()
{
var container = document.getElementById('hist');
// Clear the container
alert(container.hasChildNodes());
while (container.hasChildNodes())
{
container.removeChild(container.firstChild);
}
}
записать его в функцию и называть его загрузкой документа.
function deleteChildren() {
var container = document.getElementById('hist');
// Clear the container
while (container.hasChildNodes())
{
container.removeChild(container.firstChild);
}
}
<body onload="deleteChildren()">
<div id="history">
<div id="histheading" class="pull-left">History</div>
<div id='hist'><canvas id="test"></canvas></div>
</div>
</body>
container
null
, то есть элемент с идентификаторомhist
не существует в момент вызова функции. Поскольку то, что вы опубликовали, не является полным примером, трудно дать конкретное решение. Посмотрите, почему jQuery или метод DOM, такой какgetElementById
не находят элемент? для общих предложений.