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元素
相关文章
|
1月前
|
JavaScript 前端开发
使用jQuery操作DOM元素
使用jQuery操作DOM元素
16 1
|
1月前
|
JavaScript 前端开发
JavaScript操作DOM元素
JavaScript操作DOM元素
12 1
|
1月前
|
JavaScript 前端开发
如何使用 JavaScript 操作 DOM?
如何使用 JavaScript 操作 DOM?
15 0
|
4月前
|
JavaScript 前端开发
JavaScript DOM 操作:什么是事件委托(Event Delegation)?有什么优势?
JavaScript DOM 操作:什么是事件委托(Event Delegation)?有什么优势?
58 1
|
4月前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下 `innerHTML` 和 `textContent` 的区别。
JavaScript DOM 操作:解释一下 `innerHTML` 和 `textContent` 的区别。
42 1
|
8天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。
|
15天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
16 0
|
15天前
|
JavaScript 前端开发 安全
JavaScript DOM 操作:解释一下浏览器的同源策略。
**同源策略**是浏览器安全基石,它阻止脚本跨不同协议、域名或端口访问资源,防止恶意行为。例如,HTTP页面无法直接用JS获取HTTPS页面内容。**CORS**允许跨域请求,但需服务器配合设置,通过`document.domain`属性可配置,但仍受限于服务器配置。
15 4
N..
|
1月前
|
JavaScript 前端开发 容器
jQuery中的DOM操作
jQuery中的DOM操作
N..
14 1
|
1月前
|
前端开发 JavaScript Java
第四章使用jQuery操作DOM元素
第四章使用jQuery操作DOM元素
10 0