搜尋

首頁  >  問答  >  主體

javascript - 請教,用原生js插入html的問題

##報錯訊息:Uncaught TypeError: Failed to execute 'insertBefore' on 'Node': parameter 1 is not of type 'Node'.

我想在觸發addChild方法的時候,在對應的tr之後拼接字串,請問addChild該怎麼寫才對呢

-----更新

回答的各位朋友,謝謝了,問題解決了,用了一樓的方法

#
给我你的怀抱给我你的怀抱2697 天前1056

全部回覆(3)我來回復

  • 高洛峰

    高洛峰2017-06-26 11:00:39

    第一個參數要求是Dom節點不是字串

    試試 insertAdjacentHTML

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:39

    tpl是個字串,不是一個node對象,所以報錯;
    你可以利用事件冒泡,把addChild方法寫在tr或者tbody上(依據是否是每個tr都需要這個方法),
    然後利用event對象的target屬性來找出對應的tr,然後進行後面操作就可以了;

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-26 11:00:39

    報錯訊息很明顯了,tpl是一個字串,不是一個node元素

    https://developer.mozilla.org...

    你得把字串轉成dom

    例如類似這樣的函數,來講字串轉成dom,程式碼只做參考

    var toElement = (function(){
            var p = document.createElement('p');
            return function(html){
                p.innerHTML = html;
                var el = p.firstChild;
                return p.removeChild(el);
            };
        })();

    回覆
    0
  • 取消回覆