前言: 今天写一篇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. hisi出的H264码流结构

    hisi出的H264码流结构: IDR帧结构如下: 开始码 + nalu + I帧    +    开始码 + nalu + SPS    +     开始码 + nalu + PPS    +    ...

  2. java求两个集合的差集

    public static void main(String[] args) {Set set = new HashSet();Set set1 = new HashSet();set.add(&qu ...

  3. UVa 143 - Orchard Trees

    题目大意:果园里的树排列成矩阵,它们的x和y坐标均是1~99的整数.输入若干三角形,依次统计每一个三角形内部和边界上共有多少棵树. 三角形P0P1P2有向面积为A:2A = x0y1 + x2y0 + ...

  4. angularjs---服务(service / factory / provider)

    初angularJs时  常写一些不够优雅的代码  !我总结了一下看看各位有没有中枪的!-----( 这里只针对服务service及其相关! ) 以下做法不太优雅 兄弟controller 之间的相同 ...

  5. JMeter使用代理录制脚本

    用JMeter做接口测试,有时候接口数量比较多,用录制方式可以节省很多时间,录制接口可以配合badboy使用,但是badboy访问的浏览器是基于ie6的,基本上现在的网站不会对ie6做兼容了,使用代理 ...

  6. 用JS添加文本框案例代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 淘宝的数据库拆分(TDDL)(转)

    淘宝的数据拆分历程 系 统刚开始的时候,因为系统刚上线,用户不多,那个时候,所有的数据都放在了同一个数据库中,这个时候因为用户少压力小,一个数据库完全可以应付的了,但是 随着运营那些哥们辛苦的呐喊和拼 ...

  8. 选项卡(TabHost)的功能与用法

    TabHost是一种非常实用的组件,TabHost可以很方便地在窗口上放置多个便签页,每个标签页相当于获得了一个与外部容器相同大小的组件摆法区域.通过这种方式,就可以在一个容器里放置更多组件,例如手机 ...

  9. C# 堆栈和堆 Heap & Stack

    首先堆栈和堆(托管堆)都在进程的虚拟内存中.(在32位处理器上每个进程的虚拟内存为4GB) 堆栈stack 堆栈中存储值类型. 堆栈实际上是向下填充,即由高内存地址指向低内存地址填充. 堆栈的工作方式 ...

  10. 从[NOI2008志愿者招募]浅谈线性规划在网络流构图上的巧用

    首先来看一下题..http://www.lydsy.com/JudgeOnline/problem.php?id=1061 1061: [Noi2008]志愿者招募 Description 申奥成功后 ...