鍍金池/ 問答/HTML/ vue里設(shè)置innerHTML的問題

vue里設(shè)置innerHTML的問題

vue里使用innerHTML遇到一個(gè)奇怪的問題 我有兩個(gè)元素 一個(gè)content1一個(gè)content2 content1里有一個(gè)table content2是空元素
然后我在mounted里獲取了content1的innerHTML并且設(shè)置成content2的innerHTML 按理來說content2里應(yīng)該有一個(gè)跟content1一個(gè)的table
但是我發(fā)現(xiàn)content2里只有table和tbody 沒有tr 不知道為什么
圖片描述

圖片描述

圖片描述

圖片描述

回答
編輯回答
朕略萌

你的table的td是v-for循環(huán)出來的吧,如果是列表循環(huán)出來的,那就是因?yàn)槟愕牧斜硌h(huán)還沒有結(jié)束,就執(zhí)行了mounted方法。

將回調(diào)延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一樣,不同的是回調(diào)的 this 自動(dòng)綁定到調(diào)用它的實(shí)例上。Vue官網(wǎng)關(guān)于vm-nextTick的解釋
new Vue({
  // ...
  methods: {
    // ...
    example: function () {
      // 修改數(shù)據(jù)
      this.message = 'changed'
      // DOM 還沒有更新
      this.$nextTick(function () {
        // DOM 現(xiàn)在更新了
        // `this` 綁定到當(dāng)前實(shí)例
        this.doSomethingElse()
      })
    }
  }
})
2017年9月27日 13:30