javascript函数没有';我不能工作两次

javascript函数没有';我不能工作两次,javascript,dom,Javascript,Dom,我正在教自己编写本机javascript,我创建了这个函数来检查div是否有子对象,如果没有子对象,则创建一个带有“card”类的div 当我传入一个参数时,该函数会工作,但当我背对背传递时,它会忽略第一个函数实例,只输出第二个函数实例。有什么想法吗 谢谢 这是我的密码: JavaScript: var dealerCards = document.querySelector('.dealer-cards'); var playerCards = document.querySelector('

我正在教自己编写本机javascript,我创建了这个函数来检查div是否有子对象,如果没有子对象,则创建一个带有“card”类的div

当我传入一个参数时,该函数会工作,但当我背对背传递时,它会忽略第一个函数实例,只输出第二个函数实例。有什么想法吗

谢谢

这是我的密码:

JavaScript:

var dealerCards = document.querySelector('.dealer-cards');
var playerCards = document.querySelector('.player-cards');
var newDiv = document.createElement('div');

function cardCheck(a){  
    if (a.firstChild == null) {

        console.log(a.firstChild, a);

        newDiv.className = 'card';

        return a.appendChild(newDiv);

    }
}

cardCheck(dealerCards);
cardCheck(playerCards);
HTML:


经销商
玩家

您必须在函数中创建新元素。如果要附加文档中已存在的元素,则该元素将移动到其新父元素,而不是克隆

从:

如果
child
是对文档中现有节点的引用,
appendChild
将其从当前位置移动到新位置(即,在将其附加到其他节点之前,不需要从父节点移除节点)

这也意味着一个节点不能同时位于文档的两个点上。因此,如果节点已经有父节点,则首先将其删除,然后将其附加到新位置

在将节点附加到新父节点下之前,可以使用创建节点的副本。(请注意,使用cloneNode制作的副本不会自动保持同步。)


您需要克隆newDiv元素才能对其进行操作。基本上,您保持对它的引用,并在第二次函数调用时使用已粘贴的newDiv


if语句中的条件是否为false且不执行代码?我会使用else语句来检查它是什么样子。我知道你在说什么。我只是很难将它可视化。移动行
var newDiv=document.createElement('div')在函数内部,这样每次调用函数时都会创建一个新元素。
<div class="dealer-box box">
    <h2>Dealer</h2>
    <div class="dealer-cards card-wrapper"></div>
</div>
<div class="player-box box">
    <h2>Player</h2>
    <div class="player-cards card-wrapper"></div>
</div>