本課主題

  • jQuery 介绍
  • Ajax 介绍

jQuery 介绍

选择器

jQuery 的选择器分不同的种类,主要目的是用来查找目标的 HTML 标签,方便对目标标签进行操作,比如找到 <li></li> 的标签,然后新增或者修改里面的内容。jQuery 选择器分别有:针对标签的选择器、针对层级的选择器、针对特定目标的 ID选择器、针对整个类的 class选择器。

$('li')     // [<li></li>,<li></li>] 标签选择器,返回的是目标标签的一个集合
$('div p') // <div><p></p></div> 层级选择器
$('#myBtn') // <input id="myBtn" /> ID选择器
$('.cls') // <div class="cls"></div> class选择器 

表单选择器

$(":input");    //匹配所有 input, textarea, select 和 button 元素
$(":text"); //匹配所有的单行文本框
$(":password"); //匹配所有密码框
$(":radio"); //匹配所有单选按钮
$(":checkbox"); //匹配所有复选框
$(":submit"); //匹配所有提交按钮
$(":image"); //匹配所有图像域
$(":reset"); //匹配所有重置按钮
$(":button"); //匹配所有按钮
$(":file"); //匹配所有文件域

表单对象属性选择器

$("input:enabled");             //匹配所有可用元素 <input name="id" />
$("input:disabled"); //匹配所有不可用元素 <input name="email" disabled="disabled" />
$("input:checked"); //匹配所有选中的被选中元素(复选框、单选框等,select中的option)
$("select option:selected"); //匹配所有选中的option元素 

层级

$("li:first"); //获取匹配的第一个元素
$("input:not(:checked)")
$("li:odd"); //从 0 开始计数, 查找第1,3,5...行
$("li:even"); //从 0 开始计数, 查找第2,4,6...行
$("li:eq(1)"); //从 0 开始计数, 查找第2行
$("li:gt(0)"); //从 0 开始计数, 查找第2第3行,即索引值是1和2,也就是比0大
$("li:last"); //获取匹配的最后个元素
$("li:lt(2)"); //从 0 开始计数, 查找第1第2行,即索引值是0和1,也就是比2小
$(":header").css("background", "#EEE"); //匹配如 h1, h2, h3之类的标题元素, 给页面内所有标题加上背景色
$("div:contains('John')"); //查找所有包含 "John" 的 div 元素, 匹配包含给定文本的元素, 一个用以查找的字符串
$("td:empty"); //查找所有不包含子元素或者文本的空元素
$("div:has(p)").addClass("test"); //给所有包含 p 元素的 div 元素添加一个 text 类
$("tr:hidden"); //匹配所有不可见元素,或者type为hidden的元素
$("tr:visible"); //匹配所有的可见元素
$("ul li:first-child"); //在每个 ul 中查找第一个 li
$("ul li:last-child"); //在每个 ul 中查找最后一个 li
$("ul li:nth-child(2)"); //要匹配元素的序号,从1开始

效果

$("p").toggle("slow");              //用600毫秒的时间将段落缓慢的切换显示状态
$("p").hide("slow"); //用600毫秒的时间将段落缓慢的隐藏
$("p").show("slow"); //用缓慢的动画将隐藏的段落显示出来,历时600毫秒。
$("p").slideDown("slow"); //用600毫秒缓慢的将段落滑下
$("p").slideUp("slow"); //用600毫秒缓慢的将段落滑上
$("p").slideToggle("slow"); //用600毫秒缓慢的将段落滑上或滑下
$("p").fadeIn("slow"); //用600毫秒缓慢的将段落淡入
$("p").fadeOut("slow"); //用600毫秒缓慢的将段落淡出
$("p").fadeTo("slow", 0.66); //用600毫秒缓慢的将段落的透明度调整到0.66,大约2/3的可见度
$("p").fadeToggle("slow","linear"); //用600毫秒缓慢的将段落淡入

查找 

$("div").children();    //查找DIV中的每个子元素
$("p").find("span"); //从所有的段落开始,进一步搜索下面的span元素。与$("p span")相同
$("p").next(); //找到每个段落的后面紧邻的同辈元素
$("p").parent(); //查找每个段落的父元素
$("p").prev(); //找到每个段落紧邻的前一个同辈元素
$("div:last").prevAll().addClass("before"); //给最后一个之前的所有div加上一个类
$("div").siblings(); //找到每个div的所有同辈元素

事件

  1. .click:用 jQuery 把事件绑定到 <input /> tag 中

    // html: <input id='btn' type="button" value="button"/>
    
    $('#btn').click(function(event){
    console.log(event.target)
    }) // results
    //<input id='btn' type="button" value="button"/>

    $('#btn').click( )例子

  2. .on
    // html: <input id='btn' type="button" value="button"/>
    
    $("#btn").on('click',function(){
    console.log('Awesome!')
    }); // results
    //Awesome!

    $("#btn").on( )例子

  3. .hover(<move the cursor>,<move the cursor away>)
    //<span id="s1">Awesome!</span>
    
    $('#s1').hover(function(){
    $(this).text("MouseOver")
    },function(){
    $(this).text("Awesome!")
    }) // results
    // MouseOver
    // Awesome!

    $('#s1').hover( )例子

  4. .scroll - 当页面滚动条变化时,执行的函数:
    $(window).scroll( function() { /* ...do something... */ } );

    $(window).scroll( )例子

  5. .attr - 获取字段的内容或者是对字段赋值 e.g. attr('href')
    // html: <a id="a1" href="https://www.google.com.hk" target="_blank">Awesome!</a>
    
    $('#a1').attr('href')
    // results
    // https://www.google.com.hk $('#a1').attr('href','https://www.baidu.com')
    // results
    // <a id="a1" href="https://www.baidu.com" target="_blank">Awesome!</a>

    $('#a1').attr( )例子

  6. .change
    $("input[type='text']").change( function() {
    // 这里可以写些验证代码
    });

    $("div").change( )例子

  7. .html( )
  8. .remove( ) - completely remove the physical elements in the index.html page
  9. .empty( )
  10. .each( )
    <div>
    <ul>
    <li id='a'>apple</li>
    <li id='b'>banana</li>
    <li id='w'>waterlemon</li>
    <li id='l'>lemon</li>
    <li id='g'>grapes</li>
    </ul>
    </div> $('li').each(function(index){
    console.log(index + ':' +$(this).text())
    }) // 0:apple
    // 1:banana
    // 2:waterlemon
    // 3:lemon
    // 4:grapes

    $('li').each( )例子

  11. .blur( )
    $("p").blur( function () {
    alert("Hello World!"); }
    );

    $("p").blur( )例子

  12. .focus( ) - 当元素获得焦点时,触发 focus 事件
    $("input[type=text]").focus(function(){
    this.blur();
    });

    $("div").focus( )例子

  13. .submit( ) - 当提交表单时,会发生 submit 事件,该事件只适用于表单元素
    $("form:first").submit();

    $("form:first").submit( )例子

  14. xxxxx

css

  1. css( )

Callback function

callback function define what would be happend after a particular event has been triggered.

  1. forEach( )
  2. setInterval('func( )',秒數);
    <div id='banner' style="background-color: darkslategray; color: white;" >歡迎光臨大韓民國的領導</div>
    <script> setInterval('f1()',1000); function f1(){
    var tag = document.getElementById('banner');
    var text = tag.innerText; //获取标签中间的文本內容
    var a = text.charAt(0);
    var sub = text.substring(1,text.length);
    var new_str = sub + a;
    tag.innerText = new_str; //设置标签中的文本内容
    } </script>

    setInterval( ) 例子

  3. clearinterval( )

Traversing method

<div id="one">
<span>Awesome1</span>
<span id='o2'>Awesome2</span>
<span>Awesome3</span>
<input id="btn" type="button" value="PressMe"/>
</div>
<div id="two">
<span id='t1'>Awesome4</span>
<span>Awesome5</span>
<span>Awesome6</span>
<input id="btn" type="button" value="PressMe"/>
</div>
<input id="btn" type="button" value="PressMe"/>

HTML Code

  1. $('#jquery-obj').find( ) - 查找 HTML 标签

    $('#one').find('input').css('backgroundColor','pink')
  2. $('#jquery-obj').prev( ) - 找 jquery-obj 上一个标签
    $('#o2').prev()[0] //<span>Awesome1</span>
  3. $('#jquery-obj').next( ) - 找 jquery-obj 下一个标签
    $('#o2').next()[0] //<span>Awesome3</span>
  4. $('#jquery-obj').siblings( ) - 找 jquery-obj 除了自己以外的所有兄弟标签, e.g. 这个例子返回3个标签:[<span>Awesome1</span>,<span>Awesome3</span>, <input id="btn" type="button" value="PressMe"/>]
    $('#o2').siblings()[0] //<span>Awesome1</span> 
  5. $('#jquery-obj').children( ) - 找 jquery-obj 的所有孩子标签,e.g. 这个例子返回4个标签:[<span>Awesome1</span>,<span>Awesome2</span>,<span>Awesome3</span>, <input id="btn" type="button" value="PressMe"/>]
    $('#one').children()[0] //<span>Awesome1</span>
  6. $('#jquery-obj').closest( ) - 找 jquery-obj
  7. $('#jquery-obj').map( ) - 找 jquery-obj

this 是什么

在 jQuery 中的 this 是代表 jQuery 自身的对象

function ShowMenu(ths){
console.log(ths);
$(ths).next().removeClass('hide');
$(ths).parent().siblings().find(".body").addClass('hide');
}

jQuery 的扩展

  • 方法一:不需要先选选择器

    $.extend({
    'func': function(arg){
    console.log('func: '+arg);
    }
    }); $.func('123123'); //不需要先选选择器

    $.func('123123');

  • 方法二:扩展了jQuery选择器对象之后的方法,这需要先选选择器
    $.fn.extend({
    'fn_func': function(arg){
    console.log('fn_func: '+arg);
    }
    });
    $('form').fn_func('123'); //需要先选选择器

    $('form').fn_func('123');

  • 方法三:自执行扩展
    (function(jq){
    jq.extend({
    'func1': function(arg){
    console.log('func: '+arg);
    }
    });
    function f1(){
    }
    })(jQuery); //$.func1('123123');

    自执行扩展

  • xxxx

參考資料

银角大王:

金角大王:

其他:jQuery 中文文档 | jQuery API Doc

第十六章:Python の Web开发基础(三) jQuery与Ajax的更多相关文章

  1. 第十七章:Python の Web开发基础(四) MVC与Django

    本課主題 MVC 介绍 Django 介紹 MVC 介绍 controllers 处理用户请求 views 放置HTML模版 models 操作数据库 MVC框架就是目录的归类 MVC 是一种软件开发 ...

  2. SpringBoot | 第十六章:web应用开发

    前言 前面讲了这么多直接,都没有涉及到前端web和后端交互的部分.因为作者所在公司是采用前后端分离方式进行web项目开发了.所以都是后端提供api接口,前端根据api文档或者服务自行调用的.后台也有读 ...

  3. 第十五章:Python の Web开发基础 (二) JavaScript与DOM

    本課主題 JavaScript 介绍 DOM 介绍 JavaScript 介绍 JavaScript 是一门编程语言,它可以让网页动起来的,JavaScript 的变量有两种,一个是局部变量:一个是全 ...

  4. 第十四章:Python の Web开发基础(一) HTML与CSS

    本課主題 HTML 介绍 CSS 介绍 HTML 介绍 HTML 的头部份,重点: 定义HTML 的编码:<meta charset="UTF-8"/> 定义标题: & ...

  5. SpringBoot | 第二十六章:邮件发送

    前言 讲解了日志相关的知识点后.今天来点相对简单的,一般上,我们在开发一些注册功能.发送验证码或者订单服务时,都会通过短信或者邮件的方式通知消费者,注册或者订单的相关信息.而且基本上邮件的内容都是模版 ...

  6. UNP学习笔记(第二十六章 线程)

    线程有时称为轻权进程(lightweight process) 同一进程内的所有线程共享相同的全局内存.这使得线程之间易于共享信息,然后这样也会带来同步的问题 同一进程内的所有线程处理共享全局变量外还 ...

  7. 进击的Python【第十六章】:Web前端基础之jQuery

    进击的Python[第十六章]:Web前端基础之jQuery 一.什么是 jQuery ? jQuery是一个JavaScript函数库. jQuery是一个轻量级的"写的少,做的多&quo ...

  8. 第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础

    第三百三十六节,web爬虫讲解2—urllib库中使用xpath表达式—BeautifulSoup基础 在urllib中,我们一样可以使用xpath表达式进行信息提取,此时,你需要首先安装lxml模块 ...

  9. python 教程 第十六章、 正则表达式

    第十六章. 正则表达式 1)    匹配多个表达式 记号  re1|re2 说明  匹配正则表达式re1或re2 举例  foo|bar  匹配  foo, bar 记号  {N} 说明  匹配前面出 ...

随机推荐

  1. Nexys3学习手记1:写在前面的话

    偶然的机会,结识了xilinx的几位大牛,便毫不客气的从他们的手中接过了基于Spartan-6的由Digilent公司研发的Nexys3开发板(如图1所看到的).记得非常久非常久曾经初识FPGA的时候 ...

  2. Android之本地相冊图片选取和拍照以及图片剪辑

    转载请注明出处:http://blog.csdn.net/loveyaozu/article/details/51160482 相信有非常多Android开发者在日常开发中,因为项目需求,须要我们的A ...

  3. Esri:为Web GIS注入新内涵

    纵观近些年IT与空间技术的发展,云计算.大数据.实时信息.LBS.无人机.倾斜摄影等新技术层出不穷:互联网基础设施建设成绩瞩目,宽带成为国家战略性公共基础设施. GIS(地理信息系统)作为空间信息分析 ...

  4. C# 接口使用方法

    之前一直不理解接口这一概念,今天无意中翻书,网上查资料悟道其中的道理,现在工作没有用到interface这一块,怕以后会遇到忘记实现的方法便记录下来,哪里写的不对希望读者指出,话不多说,接下来看我对接 ...

  5. Jquery 改变样式

    Jquery简单的操作 Jquery 是一个非常好用JS库,有很多的特殊的操作,为了方便,我们都可以引入Jquery. <script src="dist/js/vendor/jque ...

  6. 手把手教你用vue-cli搭建vue项目

    手把手教你用vue-cli搭建vue项目 本篇主要是利用vue-cli来搭建vue项目,其中前提是node和npm已经安装好,文章结尾将会简单提到一个简单的例子.使用vue-cli搭建项目最开始我也是 ...

  7. vue+express之前后台分离博客

    说来惭愧,这么久没有更新过博客了,写个项目练练手吧,打算写一个vue+express的博客  可能这个时间说长不长说短不短  写到哪就是哪吧  我采用的是前后台分离  express采用的是mvc,但 ...

  8. IOS学习4——block代码块

    本文转载自:iOS开发-由浅至深学习block 一.关于block 在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调.这不免让我们想 ...

  9. Linux中dos2unix批量转换

    有时候遇到多层目录下的文件格式需要转换,dos2unix 没有-r之类的递归指令,所以需要与find还有管道结合. find -type f | xargs dos2unix -o

  10. android测试

    1.测试是否知道源代码: --黑盒测试 不知道代码 --白盒测试 知道源代码 2.按照测试粒度: --方法测试 --单元测试 Junit测试 --集成测试 --系统测试 3.按照测试暴力程度 --冒烟 ...