AngularJS - 用类标识所有元素,并添加一个没有jQuery的属性

AngularJS - Identify all elements with a class and add an attribute without jQuery

本文关键字:一个 属性 jQuery 标识 AngularJS 元素 添加      更新时间:2023-09-26

我必须识别所有在括号中带有类的元素,并为它们添加一个属性href="#"。我必须在没有jQuery的情况下做到这一点。

这是我现在的代码示例:

<a class="in-brackets">Banana</a>
<a class="in-brackets">Apple</a>

在我的控制器中:

document.getElementsByClassName("in-brackets").setAttribute("href", "#");

但什么也没发生。该元素没有该属性。

"Angular 方式"是只在指令内执行 DOM 操作。
您可以为此构建自定义指令:

.directive('inBrackets', function () {
    return {
        restrict: 'C',
        link: function postLink(scope, elem, attrs) {
            attrs.$set('href', '#');
        }
    };
});

在此处阅读有关自定义指令和"指令定义对象"的各种属性的更多信息。

您必须迭代元素:

var elems = document.getElementsByClassName("in-brackets");
for (var i = 0; i < elems.length; i++) {
    elems[i].setAttribute("href", "#");
}

你试过与 AngularJS 捆绑在一起的 jqLite 吗?它的工作方式类似于jQuery(尽管仅支持最常用的功能);如果你有jQuery背景,你可能会觉得很舒服。

angular.element(document.getElementsByClassName("in-brackets")).attr("href", "#");