Angular 元素默认使用jqLite包装(Angular 自己的 jQuery 实现)。如果您已将 jQuery 添加到项目中,则元素将使用完整的 jQuery 包装。
这是 jQuery lite http://docs.angularjs.org/api/angular.element可用的方法列表
如您所见,您可以访问parent()
并且addClass()
因此您获得了很多 DOM 操作能力,而无需添加 jQuery 作为依赖项。
-*-
使用角度操作 DOM 非常好,最好的做法是从指令中进行操作,这是一个可以访问父元素的元素的小示例
HTML
<div ng-app='app'>
<div id="someparent">
<div my-directive>
</div>
</div>
</div>
在你的 JS
var app = angular.module('app', []);
app.directive('myDirective', function(){
return{
restrict: 'A',
link: function(scope, element, attributes){
console.log(element.parent().attr('id')); // "someparent"
element.parent().addClass('loading'); // adding loading class to parent
}
};
});
jsfiddle:http: //jsfiddle.net/jaimem/Efyv4/1/
当然,在构建您的应用程序时,您可能希望指令仅在其自身中操作元素。
-*-
此外,正如 Mark 所提到的,您可以使用 angular 的现有指令,ngClass
而不是创建自己的指令。目前尚不清楚您想要实现什么,但我建议您查看ngCloak。