removeAttr不适用于angularjs

时间:2017-10-11 10:19:22

标签: javascript angularjs

我正在尝试从一组单选按钮中删除checked属性。我正在使用angularjs,但我尝试使用jquery,它是相同的。这是我的angularjs代码:

 var radioList = angular.element(document.querySelectorAll(".radioButtons"));
        for (var i = 0; i <= radioList.length; i++) {
            radioList[i].removeAttr('checked');
        }

错误是:

TypeError: radioList[i].removeAttr is not a function

我做错了什么? 提前谢谢。

更新:  Angular版本:AngularJS v1.5.8

3 个答案:

答案 0 :(得分:0)

你正在执行1次额外循环,你的循环条件应该是i<而不是i<=应该是

for (var i = 0; i < radioList.length; i++) {
            radioList[i].checked=true;
        }

Here is working demo

答案 1 :(得分:0)

首先,angularJS在内部使用jQuery,因此您可以随意使用元素选择器,就像在jQuery中一样。调用angular.element函数后,要么返回no,要么返回一个或多个结果,否则将返回结果数组。由于此数组可识别jQuery,因此可以在其引用上调用jQuery函数,该函数将在返回的结果数组中的每个条目中调用。所以,你只需要这样做;

angular.element('.radioButtons').removeAttr('checked');

答案 2 :(得分:0)

我解决了在输入中添加值的问题。

<input type="radio" name="presetRadio" id="{{filterData.id}}"
       ng-model="currentRule.filters"
       value="{{filterData.id}}"          
       ng-checked="filterData.active" />

感谢所有!!