angularJS的DOM操作

简介: angularJS的DOM操作

AngularJs是不直接操作DOM的,但是在平时的开发当中,我们有的时候还是需要操作一些DOM的,如果使用原生的JS的话操作过于麻烦,所以大家一般都是使用jQuery,jQuery虽然好用,但是AngularJs是不建议和JQuery同时使用的,所以AngularJs给我们也提供了一些操作DOM的方法———Jqlite

 

     查阅官方提供的api,可以看到使用方法是angular.element(ele),其中,允许传入的参数ele的类型是“HTML string or DOMElement to be wrapped into jQuery.”一般传入参数DOMElement。

 

angular.element:将DOM元素或者HTML字符串一包装成一个jQuery元素。

 

 

 

1.querySelector和querySelectorAll

是W3C提供的 新的查询接口,其主要特点如下:

①、querySelector只返回匹配的第一个元素,如果没有匹配项,返回null。

②、querySelectorAll返回匹配的元素集合,如果没有匹配项,返回空的nodelist(节点数组)。

③、返回的结果是静态的,之后对document结构的改变不会影响到之前取到的结果。

 

 

一.不引用jquery的情况

angular.element(document.querySelector("#span1")).addClass('test1');

 

1. <!DOCTYPE html>
2. <html lang="en">
3. <head>
4. <meta charset="UTF-8">
5. <title>AngularJS入门学习</title>
6. <style type="text/css">
7.     .test1{color: #f00;}
8.     .test2{color:#009688;}
9. </style>
10. </head>
11. <body>
12. <div ng-app="myApp" >
13.   <div ng-controller="TestController">
14.     <span id="span1" class="span1">item1</span>
15.     <span id="span2" class="span2 test2">item2</span>
16.   </div>
17. </div>
18. <script type="text/javascript"  src="js/angular.min.js"></script>
19. <script type="text/javascript">
20. var myApp = angular.module('myApp', []);
21.     myApp.controller('TestController', ['$scope', function($scope) {
22.       console.log('ll');
23.       angular.element(document.querySelector("#span1")).addClass('test1');
24.       angular.element(document.querySelector("#span2")).removeClass('test2');
25.     }]);
26. </script>
27. </body>
28. </html>

二.引用jQuery

 

引用jQuery的前提下,和$用法基本相同:angular.element(‘#‘).html();

 

angular.element("#span1").addClass('test1');

 

注意:在angular[.min].js文件之前引入jQuery文件

 

1. <!DOCTYPE html>
2. <html lang="en">
3. <head>
4. <meta charset="UTF-8">
5. <title>AngularJS入门学习</title>
6. <style type="text/css">
7.     .test1{color: #f00;}
8.     .test2{color:#009688;}
9. </style>
10. </head>
11. <body>
12. <div ng-app="myApp" >
13.   <div ng-controller="TestController">
14.     <span id="span1" class="span1">item1</span>
15.     <span id="span2" class="span2 test2">item2</span>
16.   </div>
17. </div>
18. <script type="text/javascript"  src="js/jquery-1.8.3.min.js"></script>
19. <script type="text/javascript"  src="js/angular.min.js"></script>
20. 
21. <script type="text/javascript">
22.     var myApp = angular.module('myApp', []);
23.     myApp.controller('TestController', ['$scope', function($scope) {
24.       console.log('ll');
25.       angular.element("#span1").addClass('test1');
26.       angular.element("#span2").removeClass('test2');
27.     }]);
28. </script>
29. </body>
30. </html>

 

注意:一旦在div使用ng-app(如ng-app="myApp")时,js就必须申明var myApp = angular.module('myApp', []);,否则会报错误。

 

三.angular.element方法汇总

 

1. addClass()-为每个匹配的元素添加指定的样式类名
2. after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点
3. append()-在每个匹配元素里面的末尾处插入参数内容
4. attr() - 获取匹配的元素集合中的第一个元素的属性的值
5. bind() - 为一个元素绑定一个事件处理程序
6. children() - 获得匹配元素集合中每个元素的子元素,选择器选择性筛选
7. clone()-创建一个匹配的元素集合的深度拷贝副本
8. contents()-获得匹配元素集合中每个元素的子元素,包括文字和注释节点
9. css() - 获取匹配元素集合中的第一个元素的样式属性的值
10. data()-在匹配元素上存储任意相关数据
11. detach()-从DOM中去掉所有匹配的元素
12. empty()-从DOM中移除集合中匹配元素的所有子节点
13. eq()-减少匹配元素的集合为指定的索引的哪一个元素
14. find() - 通过一个选择器,jQuery对象,或元素过滤,得到当前匹配的元素集合中每个元素的后代
15. hasClass()-确定任何一个匹配元素是否有被分配给定的(样式)类
16. html()-获取集合中第一个匹配元素的HTML内容
17. next() - 取得匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合。
18. 如果提供一个选择器,那么只有紧跟着的兄弟元素满足选择器时,才会返回此元素
19. on() - 在选定的元素上绑定一个或多个事件处理函数
20. off() - 移除一个事件处理函数
21. one() - 为元素的事件添加处理函数。处理函数在每个元素上每种事件类型最多执行一次
22. parent() - 取得匹配元素集合中,每个元素的父元素,可以提供一个可选的选择器
23. prepend()-将参数内容插入到每个匹配元素的前面(元素内部)
24. prop()-获取匹配的元素集中第一个元素的属性(property)值
25. ready()-当DOM准备就绪时,指定一个函数来执行
26. remove()-将匹配元素集合从DOM中删除。(同时移除元素上的事件及 jQuery 数据。)
27. removeAttr()-为匹配的元素集合中的每个元素中移除一个属性(attribute)
28. removeClass()-移除集合中每个匹配元素上一个,多个或全部样式
29. removeData()-在元素上移除绑定的数据
30. replaceWith()-用提供的内容替换集合中所有匹配的元素并且返回被删除元素的集合
31. text()-得到匹配元素集合中每个元素的合并文本,包括他们的后代
32. toggleClass()-在匹配的元素集合中的每个元素上添加或删除一个或多个样式类,
33. 取决于这个样式类是否存在或值切换属性。即:如果存在(不存在)就删除(添加)一个类
34. triggerHandler() -为一个事件执行附加到元素的所有处理程序
35. unbind() - 从元素上删除一个以前附加事件处理程序
36. val()-获取匹配的元素集合中第一个元素的当前值
37. wrap()-在每个匹配的元素外层包上一个html元素
相关文章
|
20天前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
20天前
|
JavaScript 前端开发
低效的DOM操作(js的问题)
低效的DOM操作(js的问题)
|
20天前
|
缓存 JavaScript 前端开发
JavaScript中DOM操作:新手常犯错误与避免策略
【4月更文挑战第1天】本文介绍了JavaScript中DOM操作的基础和新手常犯错误,包括频繁查询DOM、不恰当的遍历、滥用innerHTML、忽视异步与DOM状态以及过度同步更新。建议包括缓存DOM引用、注意文本节点、慎用innerHTML以防止XSS、正确处理异步和批量更新。遵循最佳实践,开发者能提升代码质量和应用性能。
32 2
|
20天前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
18 1
|
20天前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
14 1
|
20天前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
16 2
|
20天前
|
JavaScript 前端开发 安全
javascript操作DOM的方法
javascript操作DOM的方法
15 0
|
20天前
|
JavaScript 前端开发 容器
js操作dom元素
js操作dom元素
18 0
|
20天前
|
JavaScript 前端开发 开发者
【Web 前端】如何操作DOM元素?
【4月更文挑战第22天】【Web 前端】如何操作DOM元素?
|
20天前
|
JavaScript
js_操作dom(委托和冒泡事件)
js_操作dom(委托和冒泡事件)
18 0