鍍金池/ 問答/HTML/ doT.js模板插件,與tab選項(xiàng)卡一起使用時(shí),出現(xiàn)的JS報(bào)錯(cuò),求幫忙看看什么問

doT.js模板插件,與tab選項(xiàng)卡一起使用時(shí),出現(xiàn)的JS報(bào)錯(cuò),求幫忙看看什么問題

前端使用了doT.js模板插件來(lái)去解析jQuery ajax返回的數(shù)據(jù),并根據(jù)需求在頁(yè)面中使用了YDUI移動(dòng)端的的UI中的tab選項(xiàng)卡。相關(guān)代碼如下

    $tab.find('.tab-nav-item').on('open.ydui.tab', function (e) {
        if(e.index == '0'){
            device_info_1();
        }else if(e.index == '1'){
            device_info_2();
        }else if(e.index == '2'){
            device_info_3(1);
        }
    });

以上是tab選項(xiàng)卡的JS,切換的時(shí)候觸發(fā)不同的方法,每個(gè)方法中都是一個(gè)jQuery ajax來(lái)調(diào)取數(shù)據(jù)

jQuery ajax的方法如下,舉其中一個(gè)例子,他的兩個(gè)類似,只是調(diào)的數(shù)據(jù)內(nèi)容不同而已

    function device_info_1() {
            $.ajax({
                type: "GET",
                cache:false,
                url: "api接口地址",
                dataType: "json",
                timeout: 3000,
                success: function(data) {
                    if (data.code == '0000') {
                        // doT的模板方法
                        var tmpText = document.getElementById("list-tmpl-1").innerHTML;
                        document.getElementById("list-con-1").innerHTML=doT.template(tmpText)(data);

                    }else {
                        YDUI.dialog.alert(data.desc);
                    }
                },
                error: function(data) {
                    $('#list-con-1').html('<a href="javascript:device_info_1();" class="no-content">設(shè)備信息加載失敗,點(diǎn)擊重新加載</a>');
                }
            });
    }

現(xiàn)在的問題是:有tab選項(xiàng)卡有3個(gè),在初始加載,和第一次點(diǎn)擊切換的時(shí)候,都能正常加載數(shù)據(jù),js也不報(bào)錯(cuò),
但是如果3個(gè)tab都點(diǎn)擊查看完畢之后,再切換其他的tab選項(xiàng)卡,js就會(huì)出現(xiàn)如下報(bào)錯(cuò),請(qǐng)問這是什么原因呢?

clipboard.png

很奇怪,為何每個(gè)選項(xiàng)卡切換第二次的時(shí)候,就出現(xiàn)說(shuō)innerHTML為null呢?

下面的gif應(yīng)該看的更清楚一些,這到底是什么問題呢?求解,謝謝~

圖片描述

回答
編輯回答
陪妳哭

突然發(fā)現(xiàn)問題所在了,我把id為list-tmpl-1的script寫在了id是list-con-1的元素之內(nèi)了~只要放在list-con-1之外就好了

2018年6月11日 16:05