视频来源:麦子学院  讲师:魏畅然

补充: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操作

  1. 设置或者获取内容 - html(),text() val()
                $('div').html(function(index,html){
    alert(index+html)
    }) 遍历回调函数,索引从0开始
  2. 获取,设置属性 - 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'
    });
  3. 类相关操作: addClass(),removeClass(),hasClass(),toggleClass()
  4. 设置样式  - css()
    $('p').css({
    background:'green',
    'font-size':'30px',//有中横线的话一定要用引号括起来
    }) $('p:first').css({
    background:'green',
    'font-size':function(index,val){
    alert(val);//返回原来的字体大小
    return val='30px';//用return 重新设置
    }
    })
  5. 元素内添加:append,prepend(appendTo,prependTo)
     元素外添加:after,before(insertAfter,insertBefore)
            $('#a').append($('p'));//喔噢,还以为append是复制粘贴,原来是直接把原元素剪切到指定位置去
    $('#a').prepend('<p>内部前面</p>');
    $('#a').after('<p>外部后面</p>');
    $('#a').before('<p>外部前面</p>');
  6. remove删除整个元素 ,detach与remove()不同的是,所有绑定的事件、附加的数据等都会保留下来。
     empty()清空内容
            var e=$('p').remove();//remove()返回移除的元素
    $('#a').append(e);
  7. 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>
  8. replaceWith() 方法用指定的 HTML 内容或元素替换被选元素。(replaceAll)
        $('p').replaceWith('<div>I am not a paragraph anymore</div>');
    等价于:
    $('<div>I am not a paragraph anymore</div>').replaceAll($('p'));
  9. clone()
            $('p:first').before($('p:last'));//这是把第二段剪切到第一段之前
    $('p:first').before($('p:last').clone());//这是把第二段先进行复制,再粘贴到第一段之前

三、事件

  1. 优先级: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!');
    });
  2. 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());
    })
  3. $('#div1').off('click');  取消事件
  4. 动画
    动画
    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()。
  5. load函数
    $('#div1').load("0.php",{name:'yolo'},function(){
    alert(23);});
  6. JSON.parse(jsonstr); //可以将json字符串转换成json对象
    JSON.stringify(jsonobj); //可以将json对象转换成json对符串
  7. 由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);
       
  8. 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入门第一天的更多相关文章

  1. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  2. Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

    前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接 ...

  3. Asp.Net Web API 2(入门)第一课

    Asp.Net Web API 2(入门)第一课   前言 Http不仅仅服务于Web Pages.它也是一个创建展示服务和数据的API的强大平台.Http是简单的.灵活的.无处不在的.你能想象到几乎 ...

  4. ElasticSearch入门 第一篇:Windows下安装ElasticSearch

    这是ElasticSearch 2.4 版本系列的第一篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  5. Docker 入门 第一部分: 定位和设置

    目录 Docker 入门 第一部分: 定位和设置 Docker概念 镜像和容器 容器和虚拟机 准备你的Docker环境 测试 Docker 的版本 测试 Docker 安装 回顾 总结 Docker ...

  6. leetcode 入门第一题 4ms? 8ms? Two Sum

    今天开启leetcode 入门第一题 题意很简单,就是一个数组中求取两数之和等于目标数的一对儿下标 1.暴力 n^2 两个for循环遍历 用时0.1s 开外 代码就不用写了 2.二分 nlogn 我们 ...

  7. [MVC.NET] Asp.Net MVC3 简单入门第一季

    转自:http://www.cnblogs.com/fly_dragon/archive/2011/10/12/2208042.html 初识Asp.Net MVC2.0 初识Asp.Net MVC2 ...

  8. Django入门第一步:构建一个简单的Django项目

    Django入门第一步:构建一个简单的Django项目 1.简介 Django是一个功能完备的Python Web框架,可用于构建复杂的Web应用程序.在本文中,将通过示例跳入并学习Django.您将 ...

  9. JMeter入门 | 第一个并发测试

    JMeter入门 | 第一个并发测试 背景 近期我们组新来了一些新同事,之前从来没有用过JMeter做个并发测试,于是准备了一系列小教程去指引新同事,本章主要是新人入门体验教程,快速实现第一个接口并发 ...

随机推荐

  1. 聊聊ThreadLocal原理以及使用场景-JAVA 8源码

    相信很多人知道ThreadLocal是针对每个线程的,但是其中的原理相信大家不是很清楚,那咱们就一块看一下源码. 首先,我们先看看它的set方法.非常简单,从当前Thread中获取map.那么这个ge ...

  2. 【django基础】

    一.MTV模型 Django的MTV分别代表: Model(模型):负责业务对象与数据库的对象(ORM) Template(模版):负责如何把页面展示给用户 View(视图):负责业务逻辑,并在适当的 ...

  3. HTTP 首部字段详细介绍

    本文是HTTP解析系列第二篇,如果对http协议不是很了解,可以选去看第一篇:带新手走进神秘的HTTP协议,本文主要是对Http的首部字段进行详细解析. HTTP 协议的请求和响应报文中必定包含 HT ...

  4. python中的与 和 或

    上周五写程序碰到需要处理多重判断的一个逻辑,一般正确的写法是: if a or b or (c and d) or e: pass 因为变量很长,看上去比较杂乱,自己灵机一动写成了如下的样子: if ...

  5. Keepalived概述和安装(1)

    一.Keepalived概述 本文主要了解开源高可用负载均衡集群利器keepalived,掌握keepalived的安装,运用keepalived配置高可用集群,并能够实现keepalived与负载均 ...

  6. JSR-303校验类型

    空检查 @Null       验证对象是否为null @NotNull    验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不是Null还有被Trim的长 ...

  7. Zedboard(一)开发环境Vivado

    Vivado是Xilinx(赛灵思)公司出品的开发软件平台,适用于Zedboard开发板. 下面介绍Vivado搭建的过程: 一.注册Xilinx账号.下载安装包 推荐到Xilinx(赛灵思)英文官网 ...

  8. win10/win7下不通过winmanager整合NERDTree和Tagbar的gVim8.0配置

    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 注:图片来自作者公众号--"iKM_2018",亦即& ...

  9. 常用SQL语句集合

    一.数据定义 1.创建新数据库:CREATE DATABASE database_name2.创建新表:CREATE TABLE table_name (column_name datatype,co ...

  10. 【Java学习笔记之十三】初探Java面向对象的过程及代码实现

    理解Java面向对象的重要知识点: 一. 类,对象 类?首先举一个例子:小李设计了一张汽车设计图,然后交给生产车间来生产汽车,有黑色的.红色的.白色的... 这里,汽车设计图就是我们说的类(class ...