07_jquery入门第一天
视频来源:麦子学院 讲师:魏畅然
补充:JSON.stringify()函数 【https://www.cnblogs.com/damonlan/archive/2012/03/13/2394787.html】 用来将对象序列化,也就是将对象转换为json字符串,例如
var obj={};
obj.name='yolo';
obj.age=22;
console.log(obj);//输出: "[object Object]"
obj=JSON.stringify(obj);
console.log(typeof obj);//输出: "string"
console.log(obj);//输出:"{"name":"yolo","age":22}
console.log(JSON.stringify($('p').css('background','lightgreen')));
//报错:"Uncaught TypeError: Converting circular structure to JSON"
原因:发生了递归引用关系,如果一个json中的结构是a包含b,b包含c,c包含a,就无法执行toJSON方法
因为我的代码是设置背景啊
改为获取,$('p').css(['color','background']);
$('p').css({
background:'green',
'font-size':'30px',//有中横线的话一定要用引号括起来
})
一、选择器
$('li:not(li:first)').css('background','yellow');
$('li:odd').css('background','yellow');
$('li:lt(2)').css();//lt小于,基本过滤选择器索引值从0开始
$('li:nth-child(2)').css();//子元素过滤选择器索引从1开始
$('div:contains(理想)').css('background','yellow'); 选取div中含有文本内容包含理想元素
:empty 选择内容为空&&没有子元素
:parent 选择内容不为空||含有子元素
:contains(text) 选择含有text文本的元素
:has(p) 选择含有p元素的元素
$('[type]').css('background','red'); 选择含有type属性的元素
$('[value^=input]').css('background','red');
$('li:first-child')范围比$('li:first')广
$('li:nth-child(2)').css();
$('li:only-child').css('background','yellow');只有唯一子元素的元素
$('p:only-child').css('background','yellow');选中作为唯一子元素存在的p元素
二、DOM操作
设置或者获取内容 - html(),text() val()
$('div').html(function(index,html){
alert(index+html)
}) 遍历回调函数,索引从0开始获取,设置属性 - attr(),removeAttr()
<div id="div2" data-id="data-id2"> data-id是自定义属性
css代码: div[data-id="data-id2"]{background: orange;} <p class="p1 orange">div1-p1</p> 多个类是用空格分开的
$('p[data-id]').attr('data-id','red'); 选取含有data-id属性的p元素,再将data-id属性值设为red
//同时设置多种属性
$('p[data-id]').attr({
'data-id':'red',
'class':'p2'
});- 类相关操作: addClass(),removeClass(),hasClass(),toggleClass()
- 设置样式 - css()
$('p').css({
background:'green',
'font-size':'30px',//有中横线的话一定要用引号括起来
}) $('p:first').css({
background:'green',
'font-size':function(index,val){
alert(val);//返回原来的字体大小
return val='30px';//用return 重新设置
}
}) - 元素内添加:append,prepend(appendTo,prependTo)
元素外添加:after,before(insertAfter,insertBefore)$('#a').append($('p'));//喔噢,还以为append是复制粘贴,原来是直接把原元素剪切到指定位置去
$('#a').prepend('<p>内部前面</p>');
$('#a').after('<p>外部后面</p>');
$('#a').before('<p>外部前面</p>'); - remove删除整个元素 ,detach与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
empty()清空内容var e=$('p').remove();//remove()返回移除的元素
$('#a').append(e); - wrapInner ,wrap,wrapAll
unwrap() 方法删除被选元素的父元素1、$('p').wrapInner('<b></b>');
输出:<p><b>第一段</b></p> 2、$('p').wrap('<b></b>');
输出:<b><p>第一段</p></b><b><p>第二段</p></b> 3、$('p').wrapAll('<b></b>');
输出: <b>
<p>第一段</p>
<p>第二段</p>
</b> - replaceWith() 方法用指定的 HTML 内容或元素替换被选元素。(replaceAll)
$('p').replaceWith('<div>I am not a paragraph anymore</div>');
等价于:
$('<div>I am not a paragraph anymore</div>').replaceAll($('p')); - clone()
$('p:first').before($('p:last'));//这是把第二段剪切到第一段之前
$('p:first').before($('p:last').clone());//这是把第二段先进行复制,再粘贴到第一段之前
三、事件
- 优先级:mousedown>mouseup>click,所以这里只执行mousedown事件
$('#div1').on('mousedown',function(){
alert('mousedown now!');
});
$('#div1').on('mouseup',function(){
alert('mouseup now!');
});
$('#div1').on('click',function(){
alert('click now!');
}); - keydown,keyup,keypress (http://blog.csdn.net/z69183787/article/details/25700837)
<p>当您在下面的框中键入文本时,会弹出键位序号。</p>
<input type="text" placeholder="请随意键入字符……" /> <script type="text/javascript">
$('input').keydown(function(event){
alert(event.which);
}) ,就是在左侧输入,右侧同步显示的过程中很有用处。典型的例子就是邮件编辑预览的应用。
<script type="text/javascript">
$('input').keyup(function(event){
$('#div1').html($(this).val());
}) - $('#div1').off('click'); 取消事件
- 动画
动画
1 基本动画:show(speed[,callback]),hide(),toggle();speed值 - normal,fast,slow,或者具体数值,不用带单位,默认毫秒数
2 预制动画:slideDown(speed[,callback]),slideUp(),slideToggle(),fadeIn(),fandeOut(),fadeToggle(),
fadeTo(),控制透明度$('#div1').fadeTo(100,0.2);
3 自定义动画 animate(css,持续时间,速率,回调函数) setTimeout() 只执行 code 一次。
如果要多次调用,请使用 setInterval() 或者让 code 自身再次调用 setTimeout()。 - load函数
$('#div1').load("0.php",{name:'yolo'},function(){
alert(23);}); - JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串 - 由JSON字符串转换为JSON对象
方法一
var str='{ "name": "John" }';//标准JSON字符串,外面单引号,里面双引号,反正错过来就运行不了
var obj = jQuery.parseJSON(str)
alert( obj.name);
方法二
var j='{"name":"sa","age":22}';
j=eval('('+j+')')
alert(j.name);
方法三
JSON.parse(jsonstr);
- ajax post实例
$.ajax({
type:'post',
url:'0.php',
data:{'a':1},
dataType:'json',
success:function(data){
data=JSON.parse(data);//将标准json字符串解析对对象
alert(data.name);
},
});
07_jquery入门第一天的更多相关文章
- JAVA入门第一季(mooc-笔记)
笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...
- Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter
前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...
- Asp.Net Web API 2(入门)第一课
Asp.Net Web API 2(入门)第一课 前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎 ...
- ElasticSearch入门 第一篇:Windows下安装ElasticSearch
这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- Docker 入门 第一部分: 定位和设置
目录 Docker 入门 第一部分: 定位和设置 Docker概念 镜像和容器 容器和虚拟机 准备你的Docker环境 测试 Docker 的版本 测试 Docker 安装 回顾 总结 Docker ...
- leetcode 入门第一题 4ms? 8ms? Two Sum
今天开启leetcode 入门第一题 题意很简单,就是一个数组中求取两数之和等于目标数的一对儿下标 1.暴力 n^2 两个for循环遍历 用时0.1s 开外 代码就不用写了 2.二分 nlogn 我们 ...
- [MVC.NET] Asp.Net MVC3 简单入门第一季
转自:http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2208042.html 初识Asp.Net MVC2.0 初识Asp.Net MVC2 ...
- Django入门第一步:构建一个简单的Django项目
Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...
- JMeter入门 | 第一个并发测试
JMeter入门 | 第一个并发测试 背景 近期我们组新来了一些新同事,之前从来没有用过JMeter做个并发测试,于是准备了一系列小教程去指引新同事,本章主要是新人入门体验教程,快速实现第一个接口并发 ...
随机推荐
- Percona XtraBackup的部分备份与恢复/单库备份/单表备份/指定库备份/指定表备份
本文是翻译的Percona XtraBackup 2.2版的官方文档,原文地址在此:https://www.percona.com/doc/percona-xtrabackup/2.2/innobac ...
- uboot引导linux内核过程详解【转】
http://blog.chinaunix.net/uid-7828352-id-4472376.html 写的不错,尤其是uboot向linux内核传递参数的过程写的比较详细.
- Spring mvc之 发邮件(qq.163...)
一. 邮件开发涉及到的一些基本概念 1.1.邮件服务器和电子邮箱 要在Internet上提供电子邮件功能,必须有专门的电子邮件服务器.例如现在Internet很多提供邮件服务的厂商:sina.sohu ...
- HttpWebRequest中GetResponse或者说GetRequestStream偶尔超时,或者是各种操作超时造成的假死的一些解决方案
今天用了将近一天的时间来查找这个问题的存在,不停的百度查找原因测试原因,发现解决方案很是简单,不过最好还好哦啊都解决了,在这里纪录一下,希望可以帮到你们 payload = System.Text.E ...
- ASP.NET Core Razor中处理Ajax请求
如何ASP.NET Core Razor中处理Ajax请求 在ASP.NET Core Razor(以下简称Razor)刚出来的时候,看了一下官方的文档,一直没怎么用过.今天闲来无事,准备用Rozor ...
- SPATRA的使用
SPATRA是kali里的集成工具,可以自动化渗透测试 在命令行里键入:sparta即可进入 进去后单机左边空白处 输入你要进行渗透测试的IP 正在扫描中 点击bute可以进入hydra
- c/s与b/s 动态网站与静态网站 (网站编码统一“UTF-8”)
1.c/s和b/s 第一张图是b/s 可以随时随地的浏览 (在服务器增加网页就能增加功能,只要改变网页就能使用户同步更新,共享性也强,开发也简单,在广域网和局域网都能建造b/s结构,然后通过int ...
- Codeforces Round #452 (Div. 2)-899A.Splitting in Teams 899B.Months and Years 899C.Dividing the numbers(规律题)
A. Splitting in Teams time limit per test 1 second memory limit per test 256 megabytes input standar ...
- Zabbix安装客户端agent(windows和Centos7)
上一篇简单的介绍了怎么搭建Zabbix监控服务端,接下来给大家介绍怎么在windows和Centos7上安装zabbix_agent客户端. Zabbix是一个基于WEB界面的提供分布式系统监视以及网 ...
- mui 区域三级联动
<link href="../../css/mui.picker.css" rel="stylesheet" /><link href=&qu ...