jquery属性和元素操作
1 jquery 操作属性
2 attr("属性名") 拿到属性值或者键值对应设置属性
3
4 attr("属性名","要写入的值") # 属性写入
5
6 removeAttr("属性名") 从所有匹配的元素中移除指定的属性、
7
8
9
10 // 写入属性
11
12 $('ul a').attr('href',href);
13
14 // 移除属性
15
16 $('a').eq(2).removeAttr('href');
17
18 // 获取元素文本
19
20 jquery 操作元素
21
22 text() 设置或返回所选元素的文本内容
23
24 html() 设置或返回所选元素的内容(包括HTML标记)
25
26 val() 设置或返回表单字段的值
27
28 # 实例
29
30 # 获取元素文本
31
32 console.log($(".div1").text());
33
34 // 获取元素内容 html都会打印出来
35
36 console.log($(".div1").html());
37
38 // val 一般会用在获取表单的值
39
40 console.log($(".div1").val());
41
42
43
44 # 写个复杂的获得提交的账号密码信息
45
46 $("#btn").click(function () {
47
48 // 获取到账号的值
49
50 var user = $('#user').val();
51
52 var pwd = $('#pwd').val();
53
54 // 使用js代码进行校验等操作
55
56 });
57
58 jquery 添加新的html内容
59
60 append() 在备选元素的结尾插入内容,最尾部添加内容
61
62 prepend()在备选元素的开头插入内容,最开头处添加
63
64 after() 在备选元素之后插入内容,
65
66 before() 在备选元素之前插入内容
67
68 # 实例
69
70 $('.div1').append('<h1>python</h1>');
71
72 // 在该元素开始的位置添加内容 在元素内部
73
74 $('.div1').prepend('<h1>python</h1>');
75
76 // 元素之后添加 在所选元素之外
77
78 $('.div1').after('<div>这是在元素之后添加</div>');
79
80 // 元素之前添加 ,在所选元素之外
81
82 $('.div1').before('<div>元素之前添加</div>');
83
84 删除 元素/内容
85
86 remove() 删除被选元素(及其子元素) 相当于彻底清除
87
88 empty() 从被选元素中删除子元素 相当于清空下面的子元素
89
90 # 实例
91
92 // 删除元素 选中的节点和子节点一并被删掉 移除
93
94 $('ul').remove();
95
96 // ul 在页面上仍然存在,但是ul下面的子节点全部被删掉 子元素置空
97
98 $('ul').empty();
ajax
1 ajax 的技术目的是让js发送http请求,与后台进行通信
2
3 获取数据源和信息,ajax技术原理是实例化xmlhttp对象
4
5 使用此对象与后台通信,ajax通信过程不会影响后续js代码的执行
6
7 从而实现异步
8
9 同步与异步,
10
11 同步即指一件事干完之后再干下一件事,
12
13 异步,干一件事的同事进行另外一件事
14
15 局部刷新和无刷新
16
17 ajax可以实现局部刷新,也叫做无刷新,无刷新值得是整个页面不刷新,只是局部刷新
18
19 ajax可以自己发送http请求,不用通过浏览器的地址栏,所以页面整体不会刷新
20
21 ajax获取到后台数据,更新页面显示数据的部分,就做到了页面局部刷新
22
23 同源策略
24
25 ajax 请求的页面或资源只能是同一个域下的资源,不能是其他域的资源
26
27 这是在设计ajax时基于安全的考虑,
28
29
30
31 ajax使用方法
32
33 常用参数
34
35 1 url请求地址
36
37 2 type 请求方式 默认是GET 常用的还有POST
38
39 3 dataType 设置返回的数据格式,常用的事json格式,也可以设置为html
40
41 4 data 设置为发送给服务器的数据
42
43 5 success 设置请求成功后的回调函数
44
45 6 error 设置请求失败后的回调函数
46
47 7 async 设置是否异步,默认 true 表示异步
48
49
50
51 主要涉及jquery.ajax
52
53 其实就相当于从页面上发送http请求,
54
55 应用实例
56
57 加密传输数据, submit提交表单是不会进行加密的
58
59 先通过js代码加密,然后通过ajax发送请求。
60
61 ajax实例
62
63 // JS
64
65 // 页面加载完成之后执行的的代码
66
67 $(function () {
68
69 // ajax请求
70
71 //给前端页面上的提交按钮绑定方法
72
73 $('#btn').click(function () {
74
75 // 先获取账号
76
77 var acc = $('#user').val();
78
79 // 获取密码
80
81 var pwd = $('#pwd').val();
82
83 之后进行加密方法(略过) 发送ajax请求
84
85 花括号括起来的事一个js对象
86
87 $.ajax({
88
89 url: "/login", # 发送请求目标地址
90
91 data:{ # 如果有要求的数据就需要写
92
93 'user':acc,
94
95 'pwd':pwd
96
97 },
98
99 type:'POST', # 也可以使用method关键字传
100
101 dataType:'json', // 期望后台返回的数据类型,按照json的格式解析浏览器返回的数据
102
103 # 如果对方是可以允许跨域请求的接口,返回的类型要设置成jsonp
104
105 success:function (data) {
106
107 # data是后台返回的数据,通过一个形参传入匿名函数进行逻辑处理
108
109 // 请求成功的时候 success之后的函数会被触发 请求成功之后,后台返回数据会作为参数传入到
110
111 // success 后的回调函数中
112
113 //data.code // 就相当于取返回结果的json中的code字段
114
115 if (data.code == "1"){
116
117 alert(data.msg);
118
119 }else{
120
121 // this代表当前节点位置,当前绑定按钮,即按钮next的节点,
122
123 // append 在元素内部添加内容 达到异步发送请求返回结果给页面
124
125 $(this).next().append(data.msg);
126
127 alert(data.msg); // 编写的时候可以直接使用alert弹框来校验功能
128
129 }
130
131 },
132
133 error:function () {
134
135 //失败的话调用此处的回调函数,与下面的done跟fail一样
136
137 }
138
139
140
141 })
142
143 上面写法是方式1, 接着看方式2
144
145 ajax在发送请求的时候除了传递参数之外会自动生成两个参数传递过去
146
147 1个是回调函数,另一个是_=后面跟的一串数字的数据
148
149 如果目标后面是可以接受跨域请求的话,会将返回的数据与回电函数名称,字符串数据打包成一个jsonp格式的数据返回
150
151 # 如果需要跨域请求的话 dataType需要携程jsonp
152
153 下面来看第二种写法
154
155 $.ajax({
156
157 url: '/login',
158
159 type: 'POST',
160
161 data: {
162
163 'user': acc,
164
165 'pwd': pwd
166
167 },
168
169 dataType: 'json'
170
171 }).done(function (data) { // 成功会进入done方法
172
173 if (data.code == "1") {
174
175 alert(data.msg)
176
177 } else {
178
179 $(this).next().append(data.msg)
180
181 }
182
183 }).fail(function () { // 失败会进入fail方法
184
185 alert('请求失败')
186
187 })
188
189
190
191 });
192
193 看一个案例
194
195 $.ajax({
196
197 url: 'pro_list',
198
199 method: 'get',
200
201 dataType: 'json',
202
203 }).done(function (data) {
204
205 var pro = $('#pro');
206
207 var res = data.data;
208
209 for (i in res) {
210
211 // res结构为 列表,内含对象
212
213 // 直接打印i的话是下标
214
215 console.log(res[i]); // 拿到的事对象
216
217 var option = '<option value=' + res[i].id + '>' + res[i].title + '</option>';
218
219 pro.append(option)
220
221 }
222
223 console.log(data);
224
225 // change 事件 监测元素值是否发生变化
226
227 pro.change(function () {
228
229 // 往接口列表发送ajax请求
230
231 // 参数 pro_id
232
233 var pro_id = pro.val();
234
235 console.log(pro_id);
236
237 $.ajax({
238
239 url: '/interface',
240
241 data: {
242
243 "pro_id": pro_id
244
245 },
246
247 method: 'POST',
248
249 dataType: 'json'
250
251 }).done(function (data) {
252
253 // 首先获取到目标下拉框的元素
254
255 var interface = $('#interface');
256
257 // 成功的话就往option里面进行添加
258
259 if (data.code === "1") {
260
261 var res = data.data;
262
263 // 在添加到下拉框之间先清空
264
265 interface.empty();
266
267 for (i in res) {
268
269 var option = '<option value=>' + res[i].name + '</option>';
270
271 interface.append(option)
272
273 }
274
275 }
276
277 })
278
279 })
280
281
282
283 });