前言: 今天写一篇jQuery,发现内容太多了,那就分成两篇写吧……写完jQuery基础知识后会再写一些jQuery实例~~

jQuery下载。jQuery是一个兼容多浏览器的javascript库,核心理念是write less,do more(写得更少,做得更多),对javascript进行了封装,是的更加便捷的开发,并且在兼容性方面十分优秀。

学jQuery本着两方面的内容:

  1. 获取标签
  2. 修改内容

接下来我们一步步来学习jQuery~~

一、基本选择器

  1. id选择器
  2. 标签选择器
  3. class选择器
  4. 组合选择器
  5. 层级选择器
     <!--引入jquery-->
<script src="jquery-3.1.1.min.js"></script> <script>
// $=jQuery 相当于一个对象
$("#n1").text("zcl"); //$("#n1")表示去找id为n1的标签
$("div").text("xxoo"); //找到所有的div标签并修改内容
$(".c1").text("hello"); //$(".c1")表示找所有class=c1的标签
//用逗号分割,表示找到所有class=c1,所有a标签,所有id=n2的标签并修改它们的内容
$(".c1,a,#n2").text("OK"); //表示id为n4的标签下的所有div标签,div标签下的所有class=c3,...
$('#n4 div .c3 span a').text('kkkk'); //也可以用$('#n4 a').text('kkkk'); </script>

二、基本筛选器

 <ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
<li>list item 4</li>
<li>list item 5</li>
</ul>

① :first(获取匹配的第一个元素)

1
2
> $('ul li:first')
< [<li>​list item 1​</li>​]

② :last(获取匹配的最后一个元素)

1
2
> $('ul li:last')
< [<li>​list item 5​</li>​]

③ :eq(匹配一个给定索引值的元素)

1
2
> $('ul li:eq(1)')
< [<li>​list item 2​</li>​]

④ :gt(匹配所有大于给定索引值的元素)

1
2
> $('ul li:gt(2)')
< [<li>​list item 4​</li>​, <li>​list item 5​</li>​]

⑤ :lt (匹配所有小于给定索引值的元素)

1
2
> $('ul li:lt(2)')
< [<li>​list item 1​</li>​, <li>​list item 2​</li>​]

⑥ 其他

:not(selector)    去除所有与给定选择器匹配的元素
:even 匹配所有索引值为偶数的元素,从 0 开始计
:odd 匹配所有索引值为奇数的元素,从 0 开始计数
:lang(language) 选择指定语言的所有元素
:header 匹配如 h1, h2, h3之类的标题元素
:animated 匹配所有正在执行动画效果的元素
:focus 匹配当前获取焦点的元素
:root 选择该文档的根元素
:targe 选择由文档URI的格式化识别码表示的目标元素

三、属性选择器

1.  [ ] (匹配包含给定属性的元素)

 <div class="c1">
<div James="123">123</div>
<div James="456">456</div>
</div> > $('div[James]') //找到所有的div标签,其中有属性James
< [<div james=​"123">​123​</div>​, <div james=​"456">​456​</div>​]

2. [a="b"](匹配给定的属性a是b的元素)

 <div class="c1">
<div James="123">123</div>
<div James="456">456</div>
</div> > $('div[James="456"]') //找到所有div标签,并有属性James为456
< [<div james=​"456">​456​</div>​]

3. 更多

[attribute!=value]    匹配所有不含有指定的属性,或者属性不等于特定值的元素
[attribute^=value] 匹配给定的属性是以某些值开始的元素
[attribute$=value] 匹配给定的属性是以某些值结尾的元素
[attribute*=value] 匹配给定的属性是以包含某些值的元素
[selector1][selector2][selectorN] 复合属性选择器,需要同时满足多个条件时使用

四、表单选择器

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form>
<input type="text" />
<input type="checkbox" />
<input type="radio" />
<input type="image" />
<input type="file" />
<input type="submit" />
<input type="reset" />
<input type="password" />
<input type="button" />
<select>
<option/>
</select>
<textarea></textarea>
<button></button>
</form>
<script src="jquery-3.1.1.min.js"></script> //必须加上这句代码,否则在浏览器测试会出错
</body>
</html>

$(":input")(匹配所有 input, textarea, select 和 button 元素)

$(":text")(匹配所有的单行文本框; 找到所有的input的标签并且type=‘text’,它和$('input[type='text']')效果是一样的,下面同理)

$(":password")(匹配所有密码框)

$(":radio")(匹配所有单选按钮)

$(":checkbox")(匹配所有复选框)

$(":submit")(匹配所有提交按钮)

$(":image")(匹配所有图像域)

$(":reset")(匹配所有重置按钮)

$(":button")(匹配所有按钮)

 $(":file")(匹配所有文件域)

下面是在浏览器测试的效果:

表单对象属性

 $(":enabled")(匹配所有可编辑元素)

<form>
<input name="email" disabled="disabled" />
<input name="id" />
</form> > $("input:enabled")
< [<input name="id" />]

$(":disabled")(匹配所有不可编辑元素)

<form>
<input name="email" disabled="disabled" />
<input name="id" />
</form> > $("input:disabled")
< [<input name="email" disabled="disabled" />]

$(":checked")(匹配所有选中的被选中元素)

<form>
<input type="checkbox" name="newsletter" checked="checked" value="Daily" />
<input type="checkbox" name="newsletter" value="Weekly" />
<input type="checkbox" name="newsletter" checked="checked" value="Monthly" />
</form> > $("input:checked")
< [<input type="checkbox" name="newsletter" checked="checked" value="Daily" />,
<input type="checkbox" name="newsletter" checked="checked" value="Monthly" />]

$(":selected")(匹配所有选中的option元素)

<select>
<option value="1">Flowers</option>
<option value="2" selected="selected">Gardens</option>
<option value="3">Trees</option>
</select> > $("select option:selected")
< [<option value="2" selected="selected">Gardens</option>]

五、筛选器

1. 查找

① next(紧邻的同级下一个元素)

<p>Hello</p>
<span>Hello Again</span>
<div>
<span>And Again</span>
</div> > $("p").next()
< [<span>​Hello Again​</span>​]

② prev(紧邻的同级上一个元素)

<p>Hello</p>
<span>Hello Again</span>
<div>
<span>And Again</span>
</div> > $("div").prev()
< [<span>​Hello Again​</span>​]

③ parent(匹配元素的唯一父元素)

<div>
<p>Hello</p>
<p>Hello</p>
</div> > $("p").parent()
< [<div>​<p>​Hello​</p>​<p>​Hello​</p>​</div>​]

④ children(匹配元素所有子元素的元素集合)

<div>
<p>Hello</p>
<span>
<p>Hello</p>
</span>
</div> > $("div").children()
< [<p>​Hello​</p>​, <span>​<p>​Hello​</p>​</span>​]

⑤ siblings(匹配元素所有同级元素的元素集合)

<div>
<p>Hello</p>
<span>Hello Again</span>
<p>Hello</p>
</div> > $("span").siblings()
< [<p>​Hello​</p>​, <p>​Hello​</p>​]

⑥ find(搜索所有与指定表达式匹配的元素)

<div>
<p>Hello</p>
<span>Hello Again</span>
<p>Hello</p>
</div> > ("div").find('span')
< [<span>​Hello Again​</span>​]

⑦ 其他

closest    从元素本身开始,逐级向上级元素匹配,并返回最先匹配的元素
nextAll 查找当前元素之后所有的同辈元素
nextUntil 查找当前元素之后所有的同辈元素,直到遇到匹配的那个元素为止
offsetParent 返回第一个匹配元素用于定位的父节点
parents 取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选
parentsUntil 查找当前元素的所有的父辈元素,直到遇到匹配的那个元素为止
prevAll 查找当前元素之前所有的同辈元素
prevUntil 查找当前元素之前所有的同辈元素,直到遇到匹配的那个元素为止
siblings 取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合。可以用可选的表达式进行筛选

2. 过滤

① hasClass: 判断是否有相应的样式并返回True或者False

html代码:

<div id='l1' class="protected"></div>
<div id='l2'></div>

jQuery代码:

var result = $('#l1').hasClass('protected')
result = true var result = $('#l2').hasClass('protected')
result = false

② map: 将一组元素转换成其他数组; map和python中的map类似, 循环每个标签并做好相应的操作, 每一个标签被循环时, 都会执行map里面的函数, 将所有的结果封装到一个数组中(列表)

下面的map实例能让你更好理解(重要):

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>zcl</title>
</head>
<body>
<table border="1">
<thead></thead>
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td onclick="get_prev(this)">编辑</td>
</tr>
</tbody>
</table>
<script type="text/javascript" src="jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function get_prev(arg){
//$(arg).sibling() 当前标签的所有标签
var list = $(arg).siblings().map(function () {
//map和python中的map类似,循环每个标签并做好相应的操作
//每一个标签被循环时,都会执行map里面的函数
//将所有的结果封装到一个数组中(列表)
return $(this).text();
//返回列表
});
console.log(list[0],list[1],list[2])
}
</script>
</body>
</html>

六、属性操作

1、HTML代码/文本/值

① html(获取和设置匹配元素的内容)

<div>
<p>Hello</p>
<span>Hello Again</span>
<p>Hello</p>
</div> # 获取数据
> $('span').html()
< "Hello Again" # 更改数据
> $('span').html('<p>James</p>')
< [<span>​<p>​James​</p>​</span>​]

② text(获取和设置匹配元素的文本内容)

<div>
<p>Hello</p>
<span>Hello Again</span>
<p>Hello</p>
</div> # 获取数据
> $('span').text()
< "Hello Again" # 更改数据
> $('span').text('<p>James</p>')
< [<span>​<p>James</p>​</span>​]
> $('span').text()
< "<p>James</p>" #此时的p是个字符而不是标签

③ val(获取和设置input、select、textarea框中的内容, 这三种不能通过attr来获取,切记切记,我已经跳过这个坑了……)

<input name="James" type="text" value="默认值"/>

# 获取input框中的内容
> $('input').val()
< "默认值" # 重设input框中的内容
> $('input').val('新输入的值')
< [<input name=​"James" type=​"text" value=​"默认值">​]
> $('input').val()
< "新输入的值"

昨晚写的博客,有点错误,更正下:input、select、textarea框中的内容, 可以通过attr来获取,但是如果你在input输入框中输入新的值,用attr是取不到input框新输入的值的!! 此时取到的仍是原来input框的文本内容(value). 请看下面的例子:

<input id="i1" type="text" checked="checked" value="123"/>

原本text框的内容是123,用attr()或val()都可以获取值,但当我将text框的内容改为12334时,用attr()取到的值仍是123!!! 此时要想到到新输入的值就必须用val()

2、CSS

① addClass(为每个匹配的元素添加指定的类名)

<div>
<span>And Again</span>
</div> > $('span').addClass('James')
< [<span class=​"James">​And Again​</span>​]

② removeClass(从所有匹配的元素中删除全部或者指定的class样式)

<div>
<span class="James">And Again</span>
</div> > $('span').removeClass('James')
< [<span class>​And Again​</span>​]

③ toggleClass(如果存在就删除、不存在就添加)

<div>
<span class="James">And Again</span>
</div> > ('span').toggleClass('James')
< [<span class>​And Again​</span>​]
> $('span').toggleClass('James')
> [<span class=​"James">​And Again​</span>​]

转发注明出处:http://www.cnblogs.com/0zcl/p/6441957.html

jQuery API 中文在线手册: http://www.php100.com/manual/jquery/

博文参考整理自:

  1. 博主的OneNote笔记
  2. http://www.cnblogs.com/lianzhilei/p/6110866.html
  3. http://www.cnblogs.com/luotianshuai/p/5211984.html

【前端】:jQuery上的更多相关文章

  1. 使用Spring boot + jQuery上传文件(kotlin)

    文件上传也是常见的功能,趁着周末,用Spring boot来实现一遍. 前端部分 前端使用jQuery,这部分并不复杂,jQuery可以读取表单内的文件,这里可以通过formdata对象来组装键值对, ...

  2. web前端图片上传(3)--filereader

    这篇文章主要是为了介绍一种文件上传的方式.当然文件中是包含图片的.如果大家仔细看我的第一篇web前端图片上传(1)就会知道,其实也是按照这种方式上传你的,但是由于上次时间比较紧张,没有详细的介绍今天的 ...

  3. jq实现前端文件上传

    FormData FormData是XMLHttpRequest Level 2 新增的一个接口. 使用FormData可以实现各种文件上传. 使用 // 创建FormData的实例 var form ...

  4. Web前端JQuery面试题(三)

    Web前端JQuery面试题(三) 1.怎么阻止冒泡过程? stopPropagation(); // 阻止冒泡过程 2.ready()方法和onload()方法的区别? onload()方法要等页面 ...

  5. PC端和移动端在前端开发上的一些区别,前端里移动端到底比pc端多哪些知识

    (1)———————— 前端里移动端到底比pc端多哪些知识,为啥面试时好多公司都问h5水平如何?我做过几年的web前端开发,就简单谈谈自己的感受吧.首先来看看PC端和移动端在前端开发上的一些区别: ( ...

  6. 前端 jQuery副本

    jQuery介绍 jQuery是一个轻量级的.兼容多浏览器的JavaScript库. jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方便地进行Ajax交互, ...

  7. 前端——jQuery介绍

    目录 jQuery介绍 jQuery的优势 jQuery内容: jQuery版本 jQuery对象 jQuery基础语法 查找标签 基本选择器 层级选择器: 基本筛选器: 属性选择器: 表单筛选器: ...

  8. 前端-jQuery介绍

    目录 jQuery介绍 jQuery的优势 jQuery内容: jQuery版本 jQuery对象 jQuery基础语法 查找标签 基本选择器 层级选择器: 基本筛选器: 属性选择器: 表单筛选器: ...

  9. jQuery上定义插件并重设插件构造函数

    插件alert的全部代码,每个插件都定义在如下类似的作用域中: +function ($) { 'use strict'; // ALERT CLASS DEFINITION // ========= ...

  10. JQuery上传文件插件Uploadify使用笔记

    新工作的第一份任务就是给实现 限制Uploadify 上传文件格式为图片 测试出来报错,选择了非图片文件,提示错误后,再选择其他文件,上传时还是包含了之前清空的非图片文件 最后实现效果的代码是 //上 ...

随机推荐

  1. Xshell连接虚拟机VMware

    最大的生活乐趣就是搞各种软件,系统,无聊的我开始搞centos了(需要对网络有深刻的理解) 一.学习使用xshell来控制VMware上的Centos6.5,可是每次重启IP都会改变 不太理解虚拟机V ...

  2. TortoiseSVN使用简介(收藏)

    TortoiseSVN使用简介 1.安装及下载client 端 2.什么是SVN(Subversion)? 3.为甚么要用SVN? 4.怎么样在Windows下面建立SVN Repository? 5 ...

  3. 2015年15+最佳的响应式HTML5网站模板

    015年最好的免费响应式HTML5模板通常用于创建新潮的网站. HTML5是HTML用于创建现代化网站的最新版本.随着这一现代标记语言的出现,网上冲浪的趋势变得越来越智能化越来越酷.几乎每个web开发 ...

  4. Angular - - angular.Module

    angular.Module Angular模块配置接口. 方法: provider(name,providerType); name:服务名称. providerType:创建一个服务的实例的构造函 ...

  5. 阿里云上给的防止跨站和xss攻击的代码

    文档说明: 1.将waf.php传到要包含的文件的目录 2.在页面中加入防护,有两种做法,根据情况二选一即可: a).在所需要防护的页面加入代码require_once('waf.php');就可以做 ...

  6. delphi edit编辑框使用

    Delphi编辑框Edit的用法 http://wenku.baidu.com/link?url=oKKm0VFBXexqiWt9ZNB8WxFGzwjJqRBM3ohrAy6GSMmOmwIzSWP ...

  7. TortoiseSVN使用简介

    TortoiseSVN使用简介 2009-04-24 来源: dev.idv.tw 1.安装及下载client 端 2.什么是SVN(Subversion)? 3.为甚么要用SVN? 4.怎么样在Wi ...

  8. C# WInform 界面左导航菜单

    如图所示: 下载位置: http://pan.baidu.com/s/1c1uRwkw

  9. Ubuntu16.04安装GTK3主题:OSX-Arc

    Ubuntu16.04安装GTK3主题:OSX-Arc GTK3主题:OSX-Arc描述: 前几个月,Gnome3.20升3.22的时候,出现了大量主题崩溃的现象,其中包括Arc.Flatabulou ...

  10. iOS核心笔记—MapKit框架-基础

    1.MapKit框架简介: ✨了解:MapKit框架使用须知:①.MapKit框架中所有的数据类型的前缀都是MK:②.需要导入#import <MapKit/MapKit.h>头文件:③. ...