本課主題

  • 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. Java---Ajax在Struts2框架的应用实例

    Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 很久没有动过ajax了,趁此机会复习一下,写一个简单的例子 一.项目结构: 二.需要的jar包 三.具体代码: 1.web.x ...

  2. JDK与JRE的关系

    JDK  =   JRE + Java语言 + 工具及工具API JRE  =    程序部署发布 + 用户界面工作集 + 集成库 + 其他基础库 + 语言和工具基础库 + Java虚拟机 简单讲:J ...

  3. SSRS Fields cannot be used in page headers or footers

    问题环境:SSRS 2005 报表开发 尝试在Page Header中使用Data Set的字段,遇到以下的错误: The value expression for textbox '' refers ...

  4. string的内存管理问题

    string的内存管理是通过仅仅增不减的方式进行的,string的clear方法不会真正的释放内存,假设须要真正的释放内存可以连续调用string的这两个方法.resize(0),reserve(). ...

  5. logstash 向elasticsearch写入数据,怎样指定多个数据template

    之前在配置从logstash写数据到elasticsearch时,指定单个数据模板没有问题.可是在配置多个数据模板时候,总是不成功,后来找了非常多资料,最终找到解决的方法,就是要多加一个配置项: te ...

  6. 解决 PclZip 中文乱码问题

        在使用 Pclzip 时出现无法压缩/解压文件的现象,追踪错误信息发现无法打开文件/文件夹.可是文件夹权限正确,打印文件路径之后发现是乱码. 出现这个问题的解决办法是windows下zip内的 ...

  7. intellij idea 主题大全,看不惯idea 那2种主题的来这里了

    一直用默认的主题,但是白色的背景看久了会晃眼睛.所以打算换成黑色的. 不过Intellij只有两种主题,Default和Darcula. 现在只能自己手动安装一个了.新主题需要满足, 看久了不会太累. ...

  8. Cannot open url. please check this url is correct

    启动tomcat报错如下 任务管理器 kill 掉所有java进程,在配置中选中After launch选项 要是还是不行,那就无解,只能重启电脑.

  9. iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

    一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...

  10. ABP-Module

    [TOC] 什么是Module? Module就是模块化的设计思想.开发人员可以将自定义的功能以模块的形式集成到项目中.具体的功能也可以设计成一个单独的模块 AbpModule AbpModule是所 ...