Nko*_*ogo 8 javascript angularjs jqlite
我最近一直在努力理解为什么.addClass函数不能在jqLite上运行
element.addClass('active')
Run Code Online (Sandbox Code Playgroud)
Element返回一个html元素数组,一遍又一遍地测试,以确保.我可以隐藏(),show(),添加.css或获取一个,甚至设置.attr,但addClass抵制我.
edit:element是svg块中的路径,这就是使addClass函数无关紧要的原因,仍然试图修复它.
element是一个jqLite对象
谢谢.
Rey*_*raa 25
JqLite方法不适用于普通javascript DOM选择器(如querySelector或)选择的元素document.getElementById().如果你需要,首先用javascript选择器选择它,然后将其包装angular.element:
var element = document.querySelector('a[target="_blank"]');
var angElement = angular.element(element);
Run Code Online (Sandbox Code Playgroud)
或者干脆
var myElement = angular.element( document.querySelector('a[target="_blank"]') );
Run Code Online (Sandbox Code Playgroud)
然后你可以使用JqLite方法:
第一个例子:
angElement.addClass('active');
Run Code Online (Sandbox Code Playgroud)
第二个:
myElement.addClass('active');
Run Code Online (Sandbox Code Playgroud)
我认为这通常是一个坏主意...在 Angular 中添加类通常不是 jquery 风格完成的,您应该使用 ng-class 指令https://docs.angularjs.org/api/ng/directive/ngClass
该指令使用起来非常简单..
<div ng-class="{active: show}"></div>
Run Code Online (Sandbox Code Playgroud)
$scope.show该 div 将在以下时间激活类:true
| 归档时间: |
|
| 查看次数: |
16013 次 |
| 最近记录: |