元素不会追加到容器中

时间:2018-07-24 17:06:40

标签: javascript html css arrays

我正在研究一个简单的二十一点游戏,在庄家中将为发牌者提供一张卡,向玩家提供两张(基本规则)。

卡显示得很好,但是当我向经销商卡容器添加一个类时,该容器拒绝确认我刚刚添加的类。我从播放器功能中复制并粘贴了相同的代码,该代码成功发行了播放器卡,而且似乎在我的发牌人功能上也不起作用。

我要附加的类是“符号”。

如果您查看下面的jsfiddle代码段,则可以对其进行检查以查看类“ symbol”没有附加到发牌人,但是在播放器功能中可以正常使用。

预先感谢您的帮助。

http://jsfiddle.net/vorqdkb7/1/

经销商

function deal_dealer_cards(){
    let dealerContainer = document.querySelector('.dealer_container');

        let card = deck.pop();
        dealerHand.push(card);

        let dealerCard = document.createElement('div');
        dealerCard.className = "dealer_card";
        dealerContainer.append(dealerCard);

        let rank = document.createElement('div');
        rank.className = "rank";
        dealerCard.append(rank);
        rank.innerHTML = card.value;


        let symbol = document.createElement('div');
        dealerCard.append(symbol);
        symbol.className = 'symbol';

        let cardSymbol = document.createElement('span');
        symbol.append(cardSymbol);
        cardSymbol.setAttribute('id', 'card_symbol');

        let i = document.createElement('i');
        cardSymbol.append(i);
        let fa = "fas ";

播放器

function deal_player_cards(){

    let playerContainer = document.querySelector('.player_container');


    let fa = "fas ";

        for (let i = 0; i < 2; i++){
            let card = deck.pop();
            playerHand.push(card);


            let playerCard = document.createElement('div');
            playerCard.className = "player_card";
            playerContainer.append(playerCard);

            let rank = document.createElement('div');
            rank.className = "rank";
            playerCard.append(rank);
            rank.innerHTML = card.value;


            let symbol = document.createElement('div');
            playerCard.append(symbol);
            symbol.className = 'symbol';
            let cardSymbol = document.createElement('span');
            symbol.append(cardSymbol);
            cardSymbol.setAttribute('id', 'card_symbol');

            let i = document.createElement('i');
            cardSymbol.append(i);
            let fa = "fas "; }

2 个答案:

答案 0 :(得分:1)

好吧,div .symbol确实被附加了,但是在下面的代码中,您更新了className。

使用此代码 symbol.className = fa + "fa-heart";

现在,我不知道您到底需要什么。但是,如果您想附加符号类,也许您想做

symbol.className += " " + fa + "fa-heart";

我希望对您有帮助

答案 1 :(得分:0)

您可以使用symbol.classList.add('fa-heart')将class添加到元素中,因为这样做是用新的className属性覆盖了整个className属性。

,您也可以使用symbol.classList.remove('fa-heart')删除特定的类。

希望这对您有所帮助。