Java Web_jQuery

jQuery

1. jQuery介绍

Why is jQuery?
jQuery,就是JavaScript和查询(Query),它就是辅助JavaScript开发的js类库。
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。(来自百度百科)

jQuery 是一个 JavaScript 库。

jQuery 极大地简化了 JavaScript 编程。

jQuery 很容易学习。

jQuery优势:jQuery是免费的、开源的,jQuery的语法设计可以使开发更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。

2. jQuery初试

我们使用jQuery库的时候需要引入jQuery库,即需要引入该文件。
<script type="text/javascript" src = "../script/jquery-1.7.2.js"></script> //引入jQuery库
src位置是我当前放置的jQuery文件的位置。
如何判断jQuery是否引入成功,我们可以通过alert($)测试一下,如下代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
		<script type="text/javascript" src = "../script/jquery-1.7.2.js"></script>  
		//引入jQuary库
		<script type="text/javascript">
			alert($)
		</script>


</head>
<body>
	<button id="btnId">SayHello</button>
</body>
</html>

我们运行发现有该提示框弹出,里面显示jQuery库函数,即为引入成功!
在这里插入图片描述

需求:使用jQuery给一个按钮绑定单击事件。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
	<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
	<script type="text/javascript">
		// window.onload = function () {
		// 	var btnObj = document.getElementById("btnId");
		// 	// alert(btnObj);//[object HTMLButtonElement]   ====>>>  dom对象
		// 	btnObj.onclick = function () {
		// 		alert("js 原生的单击事件");
		// 	}
		// }

		$(function () { // 表示页面加载完成 之后,相当 window.onload = function () {}
			var $btnObj = $("#btnId"); // 表示按id查询标签对象
			$btnObj.click(function () { // 绑定单击事件
				alert("jQuery 的单击事件");
			});
		});

	</script>

</head>
<body>
	<button id="btnId">SayHello</button>
</body>
</html>

运行结果:
在这里插入图片描述

注意:

  1. 使用jQuery一定要引入jQuery库
  2. jQuery中的$是一个函数

3. jQuery核心函数

$ 是 jQuery的核心函数,能完成jQuery的很多功能。$()就是调用 $ 这个函数

  • 当传入参数为函数时:
    表示页面加载完成之后。相当于window.onload = function(){}
  • 当传入参数为HTML字符串时:
    会为我们创建这个html标签对象
  • 当传入参数为选择器字符串时:
    $("#id 属性值");         id选择器,根据id查询标签对象
    $("标签名");                标签名选择器,根据指定的标签名查询标签对象
    $(".class 属性值");   类型选择器,可以根据class属性查询标签对象
  • 当传入参数为DOM对象时:
    会把这个dom对象转化为jQuery对象
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../script/jquery-1.7.2.js"></script>
<script type="text/javascript">

	//核心函数的4个作用
    $(function () {
        // alert("页面加载完成之后,自动调用");

        $("    <div>" +
            "        <span>div-span1</span>" +
            "        <span>div-span2</span>" +
            "    </div>").appendTo("body");

        // alert($("button").length);

        var btnObj = document.getElementById("btn01");
        // alert(btnObj);
        // alert( $(btnObj) );

        // alert( $("<h1></h1>") );
        alert($("button"));

    });
	//传入参数为[函数]时:在文档加载完成后执行这个函数
	//传入参数为[HTML字符串]时:根据这个字符串创建元素节点对象
	//传入参数为[选择器字符串]时:根据这个字符串查找元素节点对象
	//传入参数为[DOM对象]时:将DOM对象包装为jQuery对象返回

</script>
</head>
<body>
    <button id="btn01">按钮1</button>
    <button>按钮2</button>
    <button>按钮3</button>
</body>
</html>

4. jQuery对象和dom对象区分

Dom对象

  1. 通过getElementByld()查询出来的标签对象是Dom对象
  2. 通过getElementsByName()查询出来的标签对象是Dom对象
  3. 通过getElementsByTagName()查询出来的标签对象是Dom对象
  4. 通过createElement()方法创建的对象,是Dom对象
    DOM对象通过alert()函数表示出来的效果是:[object HTML 标签名 Element]

jQuery对象

  1. 通过jQuery提供的API创建的对象,是jQuery对象
  2. 通过jQuery包装的Dom对象,也是jQuery对象
  3. 通过jQuery提供的API查询到的对象,是jQuery对象
    jQuary对象通过alert()函数表示出来的效果是:[object Object]

jQuery 对象是 dom 对象的数组 + jQuery 提供的一系列功能函数

jQuery对象不能使用DOM对象的属性和方法
DOM对象也不能使用jQuery对象的属性和方法

  • Dom对象和jQuery对象互转
  1. dom对象转化为jQuery对象
    • 先有DOM对象
    • $(DOM对象) 就可以转化为jQuery对象
  2. jQuery对象转为dom对象
  • 先有jQuery对象
  • jQuery对象[下标]取出相应的Dom对象

在这里插入图片描述

5. jQuery选择器

5.1 基本选择器

在这里插入图片描述

  1. id选择器
    $("#ids")其中的ids是一个标签的id值而$("#ids")就是满条件的标签
  2. 类选择器
    $(".myclass")其中的myclass就是class = "myclass"的值,而$(".myclass")就是获取类为myclass的所有标签,有可能是一个标签有可能是多个。
  3. 元素选择器
    $("div")就是选择所有的div标签。
  4. 通配符选择器
    $("*")选择页面上的所有元素
  5. 逗号分隔
    $("#ids,""myclass")选择id为ids的和类为myclass 的标签,合并两个选择器的结果并返回

5.2 层级选择器

实例:给出Html代码:

<form>
  <label>Name:</label>
  <input name="name" />
  <fieldset>
      <label>Newsletter:</label>
      <input name="newsletter" />
 </fieldset>
</form>
<input name="none" />

1、ancsetor decendant 后代选择器:在给定的祖先元素下匹配所有的后代元素。

  • ancestor:任何有效的选择器
  • descendant:用以匹配元素的选择器,并且它是第一个选择器的后代元素

jQuery代码:

$("form input") //找到表单中所有的input元素

结果:
[<input name = "name " />,<input name="newsletter" /> ]

2、 parent > child 子元素选择器:在给定的父元素下匹配所有的子元素。

  • parent:任何有效选择器
  • child:用以匹配元素的选择器,并且它是第一个选择器的子元素
$("form > input") //匹配表单中所有的子级input元素。

结果:
[ <input name="name" /> ]
3、 parent > prev + next 相邻元素选择器:匹配所有紧接在 prev 元素后的 next 元素。

  • prev:任何有效选择器
  • next:一个有效选择器并且紧接着第一个选择器
    jQuery 代码:
$("label + input")  //匹配所有跟在 label 后面的 input 元素

结果:
[ <input name="name" />, <input name="newsletter" /> ]
4、 parent > prev ~ sibings 之后的兄弟元素选择器:匹配 prev 元素之后的所有 siblings 元素。

  • prev:任何有效选择器
  • siblings:一个选择器,并且它作为第一个选择器的同辈
    jQuery 代码:
$("form ~ input")  //找到所有与表单同辈的 input 元素

结果:
[ <input name="none" /> ]

5.3 过滤选择器

基本选择器
基本选择器概念
:first获取第一个元素
:last获取最后个元素
:not(selector)去除所有与给定选择器匹配的元素
:even匹配所有索引值为偶数的元素,从 0 开始计数
:odd匹配所有索引值为奇数的元素,从 0 开始计数
:eq(index)匹配一个给定索引值的元素
:gt(index)匹配所有大于给定索引值的元素
:lt(index)匹配所有小于给定索引值的元素
:header匹配如 h1, h2, h3 之类的标题元素
:animated匹配所有正在执行动画效果的元素
内容过滤器
内容过滤器概念
:contains(text)匹配包含给定文本的元素
:empty匹配所有不包含子元素或者文本的空元素
:parent匹配含有子元素或者文本的元素
:has(selector)匹配含有选择器所匹配的元素的元素
属性过滤器
属性过滤器概念
[attribute]匹配包含给定属性的元素。
[attribute=value]匹配给定的属性是某个特定值的元素
[attribute!=value]匹配所有不含有指定的属性,或者属性不等于特定值的元素。
[attribute^=value]匹配给定的属性是以某些值开始的元素
[attribute$=value]匹配给定的属性是以某些值结尾的元素
[attribute*=value]匹配给定的属性是以包含某些值的元素
[attrSel1][attrSel2][attrSelN]复合属性选择器,需要同时满足多个条件时使用。
表单过滤器
表单过滤器概念
:input匹配所有 input, textarea, select 和 button 元素
:text匹配所有 文本输入框
:password匹配所有的密码输入框
:radio匹配所有的单选框
:checkbox匹配所有的复选框
:submit匹配所有提交按钮
:image匹配所有 img 标签
:reset匹配所有重置按钮
:button匹配所有 input type=button 按钮
:file匹配所有 input type=file 文件上传
:hidden匹配所有不可见元素
表单对象属性过滤器
表单对象属性过滤器概念
:enabled匹配所有可用元素
:disabled匹配所有不可用元素
:checked匹配所有选中的单选,复选,和下拉列表中选中的 option 标签对象
:selected匹配所有选中的 option

6. jQuery元素筛选

eq()获取给定索引的元素功能跟 :eq() 一样
first()获取第一个元素功能跟 :first 一样
last()获取最后一个元素功能跟 :last 一样
filter(exp)留下匹配的元素
is(exp)判断是否匹配给定的选择器,只要有一个匹配就返回,true
has(exp)返回包含有匹配选择器的元素的元素功能跟 :has 一样
not(exp)删除匹配选择器的元素功能跟 :not 一样
children(exp)返回匹配给定选择器的子元素功能跟 parent>child 一样
find(exp)返回匹配给定选择器的后代元素功能跟 ancestor descendant 一样
next()返回当前元素的下一个兄弟元素功能跟 prev + next 功能一样
nextAll()返回当前元素后面所有的兄弟元素功能跟 prev ~ siblings 功能一样
nextUntil()返回当前元素到指定匹配的元素为止的后面元素
parent()返回父元素
prev(exp)返回当前元素的上一个兄弟元素
prevAll()返回当前元素前面所有的兄弟元素
prevUnit(exp)返回当前元素到指定匹配的元素为止的前面元素
siblings(exp)返回所有兄弟元素
add()把 add 匹配的选择器的元素添加到当前 jquery
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值