`
云上太阳
  • 浏览: 131958 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

jquery从头开始——一篇文章学完jQuery基础

阅读更多

      刚开始是做java web 开发的,一直主攻后端,所以前端能力有所欠缺。虽然jquery也一直在用,但是真的很不系统,每次遇到稍微有点生僻的就要查资料。首先要说明的一点是我的学习网络资源http://www.w3school.com.cn/jquery/index.asp 版权归w3school所有。这次狠下心把jquery花几天时间重新梳理一遍,要说明的是默认读者是有html基础的,下面直接从代码开始我们的jquery之旅

<html>
<head>
<!-引入jquery资源->
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").click(function(){
  $(this).hide();
  });
});
</script>
</head>

<body>
<p>点击我,我会消失哦</p>
</body>

</html> 

 很简单的实现了一个功能,点击<p>元素内容,会隐藏<p>元素的内容。在<head>中引入jquery.js文件。平时我会这么写,加载Microsoft CDN (谷歌也有,但是谷歌在国内很蛋疼),也就是微软提供的jquery 网络资源

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"

这样做的好处是,用户很可能已经加载过微软jquery,那么当下次访问的时候会直接从缓存中加载,这样会加快访问的速度。

 

 

一. 四种获取元素的方式

 

  • ${#test} 表示 id 为 test 的元素;
  • ${.test} 表示 class test 的元素; 
  • ${this} 表示当前元素;
  • ${p} 表示所有的<p>元素

需要说明的是this的用法,代码说明

<html>
<head>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script type="text/javascript">
<!-下面一行表示在文档完全加载完之后再运行js代码->
$(document).ready(function(){
<!-第一处->
  $("button").click(function(){
<!-第二处->
  $(this).hide();
});
});
</script>
</head>

<body>
<button type="button">Click me</button>
</body>
</html>

 

代码表示所有的button标签在点击后隐藏自己。

 

二. jQuery选择器


      前面一节讲了四种获取获取HTML元素的方法,大家也许发现了,只是通过一种方式满足不了我们的日常使用,如果我想获取的id为test的<p>元素呢?jQuery可以这样获取:${p#test} 选取所有id="test"的<p>元素。

 

   1. jQuery元素选择器 

  jQuery 使用 CSS 选择器来选取 HTML 元素。

  $("p") 选取 <p> 元素。

  $("p.intro") 选取所有 class="intro" 的 <p> 元素。

  $("p#demo") 选取所有 id="demo" 的 <p> 元素。

 

  2. jQuery属性选择器

  $("[href]") 选取所有带有 href 属性的元素。

  $("[href='#']") 选取所有带有 href 值等于 "#" 的元素。

  $("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。

  $("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。

    

 3. jQuery CSS选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。比如下面表示把所有p元素的背景颜色变为红色;

$("p").css("background-color","red");

    * jQuery是为处理 HTML 事件而特别设计的,下面是一些事件

Event 函数绑定函数至
$(document).ready(function) 将函数绑定到文档的就绪事件(当文档完成加载时)
$(selector).click(function) 触发或将函数绑定到被选元素的点击事件
$(selector).dblclick(function) 触发或将函数绑定到被选元素的双击事件
$(selector).focus(function) 触发或将函数绑定到被选元素的获得焦点事件
$(selector).mouseover(function) 触发或将函数绑定到被选元素的鼠标悬停事件

 

三. 隐藏、显示、切换,滑动,淡入淡出,以及动画

 

  1.   隐藏与显示
  还记得前面学过的hide()函数吗?下面是功能更加强大的,具有动画效果的hide()和show()函数

 

$(selector).hide(speed,callback); //speed表示动画的速度,取值有"fast","slow"或者具体的毫秒数,
$(selector).show(speed,callback); //callback表示动画执行完毕之后回调的函数名
$(selector).toggle(speed,callback);//表示hide与show之间的切换

  

    下面代码表示点击隐藏按钮后,首先隐藏P标签的内容,然后执行show()函数,即弹出一个对话框。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
 <!-在缓慢的隐藏p元素之后执行show函数->
  $("p").hide(2000,show);
  });
});
<!-弹出一个窗口->
function show(){alert("隐藏了")}
</script>
</head>
<body>
<button type="button">隐藏</button>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
</body>
</html>

 

  2.  淡入淡出

  

$(selector).fadeIn(speed,callback); //淡入
$(selector).fadeOut(speed,callback);  //淡出
$(selector).fadeToggle(speed,callback);  //淡入与淡出之间切换
$(selector).fadeTo(speed,opacity,callback);// opacity 是0到1之间的一个数值,表示不透明度

 

  3. 滑动

$(selector).slideDown(speed,callback); //向下滑动
$(selector).slideUp(speed,callback); //向上滑动
$(selector).slideToggle(speed,callback); //向上与向下切换

 

  4. 动画

 动画用animate()来表示

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script> 
$(document).ready(function(){
  $("button").click(function(){
    var div=$("div");  
    div.animate({left:'100px'},"slow");
    div.animate({fontSize:'3em'},2000);
  });
});
</script> 
</head>
<body>
<button>开始动画</button>
<div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>
</body>
</html>

   上面代码实现的是:点击“开始动画”按钮,彩色快开始向右移动,完毕后div里面的HELLO字体开始变大。

   有时候我们在上面这些动作进行的时候需要停止动作,可以对进行动作的元素执行函数stop();比如上面的

   动画,我们可以用$("div").stop();来停止动画。

 

易错实例:我们在某个动画执行完后想继续执行下面的行为;比如hide()之后弹出alert();直接看代码

<html>
<head>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
<!-写法1->
  $("p").hide(1000);
  alert("先执行弹出窗,再完全隐藏掉p元素");
  });

<!-写法2->
 $("p").hide(1000,function(){
  alert("P元素完全隐藏后再执行弹出窗"););
  });
});
</script>
</head>
<body>
<button type="button">Hide</button>
<p>This is a paragraph with little content.</p>
</body>
</html>

 很明显写法2才是正确的选择。写法1是不能实现我们的需求的;因为JS执行是逐一执行的,隐藏执行接下来立马执行alert(),但是此时hide()函数还没有执行完,所以会产生这种错误。

 

  5. jQuery chaining(动画链)

有时候需要对某个组件执行一系列的动画或动作,那么就需要jQuery chaining 了,如下所示

$("#p").css("color","red").slideUp(2000).slideDown(2000);
//先改变颜色为红色,然后上滑接着下滑

 

三. jQuery HTML

       jQuery 中非常重要的部分,就是操作 DOM(Document Object Model(文档对象模型)) 的能力。jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。下面列出常用的

 1. HTML获取和设置

  •   text() - 设置或返回所选元素的文本内容
  •   html() - 设置或返回所选元素的内容(包括 HTML 标记)
  •   val() - 设置或返回表单字段的值
  •   attr() - 设置或返回属性的值

    下面的实例是给上面的方法增加了回调函数。

例:<p>元素的内容后面添加内容
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js"></script>
<script>
$(document).ready(function(){
  $("#btn1").click(function(){
    $("p").text(function(i,oldText){
      return "Old text: " + oldText + " New text: 这是新的!"; 
    });
  });
});
</script>
</head>

<body>
<p>这是旧的</p>
<button id="btn1">显示旧/新文本</button>
</body>
</html>

 

  2. HTML的添加

  append() - 在被选元素的结尾插入内容

  prepend() - 在被选元素的开头插入内容

  after() - 在被选元素之后插入内容

  before() - 在被选元素之前插入内容

  *需要注意的是前两个是对元素内部的内容添加,而后两个是对选中元素之外插入内容。

 

  3. HTML的删除

  remove() - 删除被选元素(及其子元素)

  empty() - 从被选元素中删除子元素

 

  4. 获取并设置CSS类

 

         有时候需要动态的设置样式,jQuery可以很方便的实现这个步骤;jQuery 拥有若干进行 CSS 操作的方 法。我们将学习下面这些:

 

   addClass() - 向被选元素添加一个或多个类

 

   removeClass() - 从被选元素删除一个或多个类

 

   toggleClass() - 对被选元素进行添加/删除类的切换操作

 

   css() - 设置或返回样式属性,如:$("p").css("background-color","yellow");

 

<!DOCTYPE html>
<html>
<head>
<style>
.important
{
font-weight:bold;
font-size:xx-large;
}

.blue
{
color:blue;
}
</style>
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.0.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("h1,h2,p").toggleClass("blue");
  });
});
</script>
<style type="text/css">
.blue
{
color:blue;
}
</style>
</head>
<body>

<h1>标题 1</h1>
<h2>标题 2</h2>
<p>这是一个段落。</p>
<p>这是另一个段落。</p>
<button>切换 CSS 类</button>
</body>
</html>

 

 

 

 

 

   5. jQuery尺寸

 

  width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。

 

  height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。

 

  innerWidth() 方法返回元素的宽度(包括内边距)。

 

  innerHeight() 方法返回元素的高度(包括内边距)。

 

  outerWidth() 方法返回元素的宽度(包括内边距和边框)。

 

  outerHeight() 方法返回元素的高度(包括内边距和边框)。

 

  outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)。

 

  outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。

 

  需要说明的是也可以试着元素的宽高 如:$("#div1").width(500).height(500);

 

  四. jQuery遍历

 

    这里的遍历表示获取本元素的父元素、同级元素和子元素。

 

  1.向上遍历

 

        parent() 方法返回被选元素的直接父元素。

       parents()方法返回被选元素的所有父元素,直到根元素为止。

       parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。

    2.向下遍历

       children() 方法返回被选元素的所有直接子元素。

       find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。

     3.同胞元素

  • siblings() 返回所有的同胞元素
  • next() 返回接下来的第一个同胞元素
  • nextAll()返回接下来所有的同胞元素
  • nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。

    接下来三个与上面类似,只不过是向前查找

  • prev()
  • prevAll()
  • prevUntil()

      4.过滤遍历

 

      三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素。其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹配某项指定标准的元素。

 

    5.jQuery Ajax

    感觉这是jQuery最好的功能了,纯js的ajax编码真的是恶心出翔了。

 

分享到:
评论

相关推荐

    jquery引用文件——jquery.js

    jQuery,作为一个广泛使用的JavaScript库,自2006年发布以来,就以其简洁的API和强大的功能深受开发者喜爱。本文将深入探讨jQuery的核心原理,以及如何在实际项目中有效地引用和使用jQuery.js文件。 一、jQuery简介...

    jQuery.flipster——简单好用的立体式banner切换插件.zip

    jQuery.flipster是一款优秀的jQuery插件,专为创建立体式的轮播Banner或旋转木马效果而设计。这款插件以其简洁的API和出色的用户体验受到了许多开发者的喜爱。在本压缩包中,你将找到所有必要的资源来快速搭建一个...

    从零开始学jquery

    【从零开始学jQuery】这个教程旨在帮助初学者全面理解并掌握jQuery这一强大的JavaScript库。jQuery简化了HTML文档遍历、事件处理、动画设计和Ajax交互,是Web开发中的常用工具。 ### (一) 开天辟地入门篇 在入门...

    jquery插件——多级菜单

    在本文中,我们将深入探讨如何使用jQuery来创建一个支持无限层级的多级菜单。这个话题对于Web开发人员,特别是初学者来说,是非常实用且有趣的,因为它可以帮助他们更好地理解和掌握前端交互设计。 首先,jQuery是...

    jquery-ui——时间控件-显示日期&星期几

    jquery-ui——时间控件-显示日期&星期几,修改了一下jquery ui的源码,可以选择日期,然后在日期后面加上星期几,例如:选择“2014-08-02”会显示“2014-08-02 星期六”用法跟jquery ui方法一样

    Jquery基础实例01——用户名校验

    **jQuery基础实例01——用户名校验** 在Web开发中,客户端验证是必不可少的一部分,它能够提高用户体验,减少无效请求并防止服务器端负担过重。jQuery是一个轻量级的JavaScript库,提供了丰富的API来简化DOM操作、...

    jquery基础实例002——可编辑的表格

    在本实例中,"jquery基础实例002——可编辑的表格"主要展示了如何使用jQuery库来实现一个基本的交互式、可编辑的表格功能。jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等...

    jQuery游戏——小鸟飞行

    《jQuery游戏——小鸟飞行》是一款基于JavaScript库jQuery开发的简单互动游戏,旨在通过模拟小鸟飞行的场景,让玩家体验到游戏的乐趣,同时也提供了一个学习jQuery交互效果和动画制作的实践平台。这款游戏通常由HTML...

    jquery 分页——jqueryPage.js

    jQuery 是一个广泛使用的 JavaScript 库,它简化了 DOM 操作、事件处理和动画效果。`jqueryPage.js` 是一个基于 jQuery 的分页插件,用于帮助开发者轻松实现网页的分页功能。 `jqueryPage.js` 插件的使用首先需要...

    Another JQuery Grid Plugin —— MagicGrid 插件

    MagicGrid is a small and flexible JQuery grid plugin. Although it only provide basic grid function, good design model give it great flexibility. It is open source and totally free. Before your start, ...

    Web编程基础——CSS、JavaScript、jQuery【高清版】

    《Web编程基础——CSS、JavaScript、jQuery》是一本旨在教授Web前端开发基础知识的教程,涵盖了网页样式设计、动态脚本语言以及广泛使用的JavaScript库。在Web开发领域,这三者是构建交互式和响应式网站不可或缺的...

    jQuery.flipster——简单好用的立体式banner切换插件

    效果描述: 简单好用的立体式左右滚动banner焦点图效果 源代码没有任何图片,且CSS较为冗余,懒人站长已经做过优化,方便懒人们使用 使用方法: 1、将CSS引入到你的页面中,保证命名不冲突 ...

    从零开始学习jQuery

    ### 从零开始学习jQuery——综合知识点解析 #### 一、引言 随着Web技术的发展,JavaScript已经成为前端开发中不可或缺的一部分。为了简化JavaScript的使用,提高开发效率,jQuery应运而生。本文将从零开始,详细...

    图片文件上传回显jQuery插件——插件四

    "图片文件上传回显jQuery插件——插件四"正是针对这一需求设计的工具,它简化了开发者实现这一功能的复杂度,使得图片预览和上传变得更加便捷。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、...

    jquery基础教程中文版2015

    **jQuery基础教程中文版2015** jQuery是一款强大的...总结,jQuery基础教程2015版是初学者入门jQuery的良好资料,通过学习,你可以掌握这一强大的工具,提升网页开发效率,创造更加动态和交互性强的Web应用。

    一天搞定jQuery(一)——使用jQuery完成定时弹出广告

    在"一天搞定jQuery(一)——使用jQuery完成定时弹出广告"的主题中,我们将深入探讨如何利用jQuery来实现一个定时弹出的广告功能。 首先,我们需要了解jQuery的核心概念。jQuery通过选择器(Selectors)获取DOM元素,...

    jQuery插件——imgbox(点击图片查看大图)

    1. **jQuery 基础** jQuery 是一个快速、简洁的 JavaScript 库,它简化了 HTML 文档遍历、事件处理、动画和Ajax交互。jQuery 的目标是使用户的 JavaScript 编程变得更简单,Imgbox 插件正是基于 jQuery 构建的。 2...

    一天搞定jQuery(二)——使用jQuery表格的隔行换色

    在本教程中,我们将深入探讨如何使用jQuery实现表格的隔行换色效果,这是一项常见的网页美化技术,可以使用户在浏览数据时有更好的视觉体验。jQuery作为一个强大的JavaScript库,提供了丰富的功能来简化DOM操作,让...

    常用的jquery模板插件——jQuery Boilerplate介绍

    在初次进行jquery插件开发时,我们往往无从下手,当然我们可以按照jquery官方提供的格式进行简单的插件开发,但是很...在这里主要介绍下一个在实际开发中最常用的jquery模板插件——jQuery Boilerplate jQuery Boilerpl

Global site tag (gtag.js) - Google Analytics