通过JS修改HTML给我未定义(AngularJS错误)

时间:2017-07-19 14:39:09

标签: javascript html angularjs

使用此功能:

function modifyJS(elemento){        
        if (document.getElementById(elemento).innerHTML.indexOf('✔')>0){
            document.getElementById(elemento).innerHTML=document.getElementById(elemento).innerHTML.substring(0,document.getElementById(elemento).innerHTML.length-29);
        }else{
            document.getElementById(elemento).innerHTML=document.getElementById(elemento).innerHTML+'<b color="green">&#10004;</b>';
        }
    }

我想修改继承的HTML内容。当我调用该函数时,错误如下

TypeError: Cannot read property 'innerHTML' of nullangular.1.4.6.min.js:107

我打破了它,但是&#34; elemento&#34;传递给标识HTML元素的变量被正确地赋予函数。

1 个答案:

答案 0 :(得分:1)

有这个表:

 <table class="table table-bordered">
    <tr ng-repeat="x in menus" ng-class-even="'alt'">
    <td  style="background: white;" id="x.id" ng-click="addMenu(x.href,x.id)">{{cleanMenuAction(x.href)}}</td>

    </tr>
</table>

修改点击的&#34; td&#34;标签,最后我修改了这个函数:

//Funzione per aggiungere una voce di menu da abilitare per l'utente in creazione
$scope.addMenu= function(vocemenu,idmenu){

    if (vocemenu.indexOf(' SELEZIONATA')>0){
        vocemenu=vocemenu.substring(0,vocemenu.length-(' SELEZIONATA').length);
        $scope.cleanMenuAction(vocemenu);
        $scope.menus[idmenu-1].href=vocemenu;
    }else{
        $scope.cleanMenuAction(vocemenu);
        vocemenu=vocemenu+' SELEZIONATA';

        $scope.menus[idmenu-1].href=vocemenu;
    }
}

第二个,它用于删除我不需要的部分字符串

//Funzione per rendere più leggibile la voce di menu da mostrare
$scope.cleanMenuAction= function(stringa){
    //Verifica se presente una &
    if (stringa.indexOf("&")>0){
        return (stringa.substring((stringa.indexOf('=')+1),stringa.indexOf('&')));
    }
    else{
        return (stringa.substring((stringa.indexOf('=')+1),stringa.length));
    }
}