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

Javascript 通过JS修改HTML给我未定义(AngularJS错误),javascript,html,angularjs,Javascript,Html,Angularjs,使用此功能: function modifyJS(elemento){ if (document.getElementById(elemento).innerHTML.indexOf('✔')>0){ document.getElementById(elemento).innerHTML=document.getElementById(elemento).innerHTML.substring(0,documen

使用此功能:

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元素的“elemento”变量被正确地赋给了函数。

具有此表:

 <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>
第二个,它被用来移除我不需要的部分字符串:

//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));
    }
}

您在代码中的何处调用此函数?也许您无意中试图为“elemento”传递一个不存在的元素。当我通过这个角度函数“单击”一个内部编码为“id”的td元素时,我调用:$scope.addMenu=Function(idmenu){modifyJS(idmenu);}我对它进行了断点,以查看是否正确传递了值,它是否正确。您在这里试图实现什么(一般意义上)?在我看来,也许你需要的是一个简单的或者比你在问题中发布的代码更简单、更详细的代码。我有一个列表:{{cleanMenuAction(x.href)}我的目标是在单击“td”时添加一个“tick”符号,如果下次单击,它必须被删除。正如你从我的问题中所看到的,上述函数是做什么的。我必须修改里面的HTML,这就是为什么我没有使用ng bind指令的原因。这就是你的问题!您正在将x.id传递给addMenu()。x、 id不是元素x本身;它是x的id属性。如果希望函数能够访问元素本身,请尝试将addMenu(x.id)更改为addMenu(x)
//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));
    }
}