为什么会出错?

Why is this erroring out?

这是我的 JavaScript

document.getElementById('testButton').onclick = function(){
  var tableResult = makeHTMLMatchesTable(fetchMatches());
  var matches = document.getElementById('matches')
  matches.parentNode.insertBefore(matches, tableResult);
}

我试图让这个函数插入一些 HTML 但我收到错误:NotFoundError: Failed to execute 'insertBefore' on 'Node': The node before which the new node is to be inserted is not a child of this node.

我不太明白这个错误,我尝试输入不同的参数,但它仍然不断抱怨 child。有什么想法吗?

你把 .insertBefore() 参数的顺序弄反了。应该是:

parentNode.insertBefore(newNode, referenceNode);

因此,在您的特定情况下,如果您尝试在 matches 之前插入 tableResult,则将其更改为:

matches.parentNode.insertBefore(tableResult, matches);