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元素
相关文章
|
6月前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
256 0
|
6月前
|
JavaScript 前端开发
低效的DOM操作(js的问题)
低效的DOM操作(js的问题)
23 0
|
5月前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
62 2
JavaScript基础-DOM操作:查找、创建、修改
|
5月前
|
JavaScript 前端开发
DOM操作有哪些方法可以改变元素的样式?
【6月更文挑战第30天】DOM操作有哪些方法可以改变元素的样式?
44 2
|
5月前
|
JavaScript 前端开发 开发者
DOM操作
【6月更文挑战第30天】DOM操作
37 1
|
4月前
|
JavaScript 前端开发 API
前端框架与库 - jQuery基础与DOM操作
【7月更文挑战第18天】jQuery 是一个简化JavaScript任务的库,以其“write less, do more”理念著称。核心功能包括DOM操作、事件处理和Ajax。DOM操作如选择元素(`$(&quot;p&quot;)`、`$(&quot;#myDiv&quot;)`、`$(&quot;.myClass&quot;)`)、创建及添加元素、修改属性和内容。事件处理如绑定(`click`)和触发(`trigger`)。常见问题涉及`$`符号冲突(使用`jQuery`代替)、异步加载管理和选择器性能优化。了解并规避这些问题能提升jQuery使用效率。
34 0
|
5月前
|
JavaScript 前端开发 安全
【JavaScript 】DOM操作快速入门
【JavaScript 】DOM操作快速入门
73 2
|
5月前
|
JSON JavaScript 数据格式
技术好文:tabel表格的dom操作
技术好文:tabel表格的dom操作
26 0
|
6月前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
47 2
|
6月前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。