鍍金池/ 問(wèn)答/HTML/ vue重新渲染后無(wú)法獲取節(jié)點(diǎn)

vue重新渲染后無(wú)法獲取節(jié)點(diǎn)

如題:
我有一個(gè)卡片切換組,點(diǎn)擊標(biāo)題切換不同的卡片;我給其中一個(gè)卡片內(nèi)容盒子家了一個(gè)id值,當(dāng)切換卡片時(shí)判斷標(biāo)題下標(biāo),找到對(duì)應(yīng)卡片內(nèi)容,并獲取到我設(shè)置的那個(gè)ID值————我在卡片切換時(shí)有一個(gè)判斷:

vm.tabIndex = i;//切換對(duì)應(yīng)內(nèi)容
if(i == 1){
    Vue.nextTick(function(){
        var dom = document.getElementById('dom1');//null
        ...//后續(xù)方法
    })
}

如代碼所示,在切換方法中,首先更新點(diǎn)擊卡片標(biāo)題下標(biāo),顯示對(duì)應(yīng)內(nèi)容,然后判斷當(dāng)前卡片是否為下標(biāo)1,更新節(jié)點(diǎn)后獲取節(jié)點(diǎn)'dom1'。但是返回為null。

另:在我的切換方法中還加入了一個(gè)swiper插件,同樣是
if(i == 3){

Vue.nextTick(function(){
    var bannerswiper = new Swiper('.stroe-swiper', {...});
})

}
為什么插件同樣是重新渲染后獲取節(jié)點(diǎn)就不報(bào)錯(cuò),而反而我自己直接獲取節(jié)點(diǎn)報(bào)錯(cuò),返回為null?

最后找到原因了:
Vue.nextTick(function(){

setTimeout(function(){
    var dom = document.getElementById('dom1');//htmlObject
    ...//后續(xù)方法
   },300);
})
回答
編輯回答
嘟尛嘴

你控制div顯示與隱藏用的什么,v-if,v-show,還是直接dom操作?

2018年6月9日 06:18