亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

動態創建的元素上的 getElementById

動態創建的元素上的 getElementById

眼眸繁星 2023-01-06 15:43:37
我有一個動態元素,它會id在點擊時改變它。單擊后,它還會運行一個函數,該函數getElementById用于選擇自身,因為id它選擇的是單擊時分配給元素的那個。當我嘗試將這個元素分配給一個變量時,它被分配了null。我在某處讀到動態創建的元素可能會發生這種情況,但找不到解決方案。這是相關代碼:function renderPlayerHand() {    player.hand.forEach(function (element, index) {        var card = document.createElement("span");        card.classList.add("face_up_card");        switch(element[1]) {            case 'Spade':                card.classList.add("spade")                break;            case 'Diamonds':                card.classList.add("diamonds")                break;            case 'Clubs':                card.classList.add("clubs")                break;            case 'Hearts':                                    card.classList.add("hearts")                break;        }        card.id = `p${index + 1}c`;        card.innerHTML = element[0] + "<br />" + element[1];        card.setAttribute("onclick","startTurn();this.id='a1c'");        document.body.appendChild(card);    });}function startTurn() {    console.log("Turn Started");    var firstCard = document.getElementById('a1c');    console.log(firstCard);}
查看完整描述

1 回答

?
青春有我

TA貢獻1784條經驗 獲得超8個贊

我認為您'a1c'在致電后聲明了 id startTurn()。在下文中,id 在函數內部聲明。


function renderPlayerHand() {

  player.hand.forEach(function(element, index) {

    var card = document.createElement("span");

    card.classList.add("face_up_card");

    switch (element[1]) {

      case 'Spade':

        card.classList.add("spade")

        break;

      case 'Diamonds':

        card.classList.add("diamonds")

        break;

      case 'Clubs':

        card.classList.add("clubs")

        break;

      case 'Hearts':

        card.classList.add("hearts")

        break;

    }

    card.id = `p${index + 1}c`;

    card.innerHTML = element[0] + "<br />" + element[1];

    card.setAttribute("onclick", "startTurn(this)");

    document.body.appendChild(card);

  });

}

function startTurn(el) {

  el.id = 'a1c';

  console.log("Turn Started");

  var firstCard = el;

  console.log(firstCard);

}


查看完整回答
反對 回復 2023-01-06
  • 1 回答
  • 0 關注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號