什么是Jquery?

Jquery是一套Javascript脚本库。

使用时需要先下载下来,并引用到项目中。

下载地址:http://jquery.com/download/

目前jquery分为 1.x 和 2.x两种版本, 2.x以上不再支持i8及以下浏览器。

Jquery语法

$(selector).action() 美元符开头 选择器名.执行的方法

jquery(document).read(function(){}); //等同于load 文档加载完毕后运行的函数
$(function(){}); //简写

jquery对象与DOM对象

在DOM操作中,将一个按钮禁用

document.getElementById("btn").disabled=true; 

上面执行了一个javascript DOM操作,如果这样使用jquery对象来调用DOM属性则会报错。

$("#btn").disabled=true; 

解决办法:

1、可以使用jquery对象的attr方法实现

$("#btn").attr("disabled","true");

2、把Jquery对象转换成DOM对象

$("#btn")[0].disabled=true;
$("#btn").get(0).disabled=true;

使用$("").get(0) 或者$("")[0] 可以将jquery对象转换为DOM对象,然后再调用DOM的属性即可。

当然这只是操作一个元素,如果多个元素的话遍历集合,get(i)即可

$(":text").each(function(i){
//$(this).get(i).disabled=true;
//$(this).attr("disabled","true");
});

同时也可以将DOM对象转换为jquery对象

var v = document.getElementById("btn");
var $v = $(v); //使用$(dom);即可转换 $v.attr("disabled","true"); //然后使用jquery对象的attr方法即可

Jquery选择器

在DOM编程中,我们只能使用有限的函数根据id或者标签获得DOM对象。

在Jquery中,使用选择器可以获取页面上任意一个或一组对象。

$("#testId")  选取id为testId的元素 等同于document.getElementById("testId");

$符号在Jquery中代表对Jquery对象的引用。

$("#testId") 等同于 jquery("#testId");

选择器的种类

1、基础选择器

$("#divId")  选择id为divId的元素
$("p") 选择所有p标签
$(".red") 选择所有样式为red的元素
$("*") 选择所有元素
$("#divId , p , .red") 使用,逗号进行分割,然后拼成一个选择器,会同时选择这几个选择器。

2、层次选择器

$("#divId div") 选择id为divId 下的所有div
$("#divId>div") 选择id为divId 下的直接子节点div
$("#divId+div") 选择id为divId 的下一个同级div标签
$("#divId~div") 选择id为divId 的所有同级div标签

3、基本过滤器

$("tr:first") 选择表格的第一行
$("tr:last") 选择表格的最后一行
$("input:not(:checked)") 查找所有未选中的input元素
$("tr:even") 查找表格所有的偶数行 从0开始 2 4 6
$("tr:odd") 查找表格所有的奇数行 1 3 5
$("tr:eq(1)") 查找表格中的第二行 index从0开始
$("tr:gt(3)") 查找大于3的行
$("tr:lt(3)") 查找小于3的行
$(":header") 选择h1~h6的header标签
$(":animated") 选择所有动画元素

4、内容过滤器

$("div:contains('david')") 选择所有包含“david”的div元素
$("td:empty") 查找所有不为空的元素
$("div:has(p)") 查找所有包含p元素的div
$("td:parent") 查找含有子元素的td元素

5、可见性过滤器

$("tr:hidden") 查找所有不可见元素
$("tr:visible") 查找所有可见元素

6、属性过滤器

$("input[type]") 匹配所有包含type属性的input元素
$("input[name='sex']") 匹配所有name为sex的input元素
$("input[name!='sex']") 匹配所有name不等于sex的input元素
$("input[name^='ch']") 匹配所有name以ch开始的input元素
$("input[name$='t']") 匹配所有name以t结尾的input元素
$("input[name*='bai']") 匹配所有name包含‘bai’的input元素
$("input[name='sex'][type='checkbox']") 复合属性选择,匹配name为sex并且type为checkbox的input元素

7、子元素过滤器

$("ul li:nth-child(2)") 匹配ul的第2个子元素 从1开始 eq是0开始
$("ul li:first-child") 匹配第一个子元素
$("ul li:last-child") 匹配最后一个子元素
$("ul li:only-child") 查找ul中是唯一子元素的li

8、表单选择器

$(":input") 匹配所有input元素 包含select 、button、textarea、input。
$(":text") 匹配所有文本框
$(":password") 匹配所有密码框
$(":radio") 匹配所有单选按钮
$(":checkbox") 匹配所有复选框
$(":submit") 匹配所有提交按钮
$(":image") 匹配所有图像
$(":reset") 匹配所有重置按钮
$(":button") 匹配所有按钮
$(":file") 匹配所有文件域

9、表单过滤器

$("input:enabled") 所有可用的input元素
$("input:disabled") 所有不可用的input元素
$("input:checked") 所有选中的元素
$("select option:selected") 选中的下拉元素

操作元素

创建元素

在javascript中创建元素需要使用createElement,并且编写大量的js代码。

在jquery中创建元素使用 $(html代码) 来创建元素。

$("<a href="#">测试</a>") 这样就创建完毕了,然后指定需要添加到页面的位置即可。

$("<a href='#'>测试</a>").appendTo("body"); //添加到body的末尾中

对应有一个append方法 $(位置).append(代码);

$("body").append("<span>abc</span>")

如果想创建到起始位置使用prepend()方法

$("body").prepend("<h1>h1</h1>") //追加body中的 最前面
$("<h2>h2</h2>").prependTo("h1"); //对应的prependTo()方法

插入元素

刚刚的操作都是添加到具体的标签中,可以添加到标签的前面和后面,在jquery中可以使用insertBefore()和insertAfter()插入到某个节点之前或之后。

//insertBefore
$("<h3>h3</h3>").insertBefore("#deng"); //插入到#deng上面 //insertAfter
$("<h4>h4</h4>").insertAfter("#deng"); //#deng下面

也可以使用简写before()和after(),但更推荐上面的

//before
$("#deng").before("<p>new</p>")
//after 之后
$("#deng").after("<p>new</p>")

删除元素

Jquery中删除元素有两种方法:empty()删除所有子节点、remove(selector) 筛选删除

//empty()
$("body").empty(); //清空body下的所有子节点
//remove();
$("p").remove(); //把P都干掉
$("a[href='#']").remove(); //a href为#的全部删除

获取/修改属性

$("btn").attr("type"); //获取type属性的值
$("btn").attr("type","button"); //设置type属性的值

操作样式

操作样式名:hasClass(是否存在)、removeClass(移除)、addClass(添加)、toggleClass(切换)

if($("#id").hasClass("red")){ //hasClass 是否存在某样式名
$("#id").removeClass("red"); //removeClass 删除指定样式名
}else{
$("#id").addClass("red"); //addClass 添加指定样式名
}

然后上面的这一系列判断 toggleClass自己可以完成

$("#btn").click(function(){
$("#id").toggleClass("red"); //点一下添加 再点一下移除
});

除了可以设置类名外还可以使用css()方法直接写入样式

//.css(样式名,值)
$("div").css("height","100px").css("width","200px").css("border","1px solid #ccc");
//.css({对象})
$("div").css({
height:"200px",
width:"200px",
border:"2px solid #ccc"
});

获得内容

text()、html()、val()

$("p").text(); //获得或设置元素文本内容
$("p").html(); //获取或设置元素的内容包含html标记
$("input").val(); //设置或获取表单字段的值

操作尺寸

$("div").width(); //获得或设置宽度
$("div").height(); //获得或设置高度
$("div").innerWidth(); //返回宽度 包含内边距
$("div").innerHeight(); //返回高度 包含内边距
$("div").outerWidth(); //返回宽度 包含内边距及边框
$("div").outerHeight(); //返回高度 包含内边距及边框

Jquery遍历

map循环

用于遍历一个数组,并且根据需要返回一个新数组。

语法:$.map(array,function(value,index){return value});

var arr=["a","b","c","d","e"];
var newArr = $.map(arr,function(value,index){
//console.log(index+","+value); //索引 值
return value + "," + index;
}); console.log(newArr.length); //5 得到一个新数组

例:将一个数组中 大于3的数 翻三倍

var arr=[12,2,3,5,4];
var newArr = $.map(arr,function(value,index){
if(value>3)
{
return value * 3;
}
}); for(var item = 0;item < newArr.length;item++)
{
console.log(newArr[item]);
}

each循环

遍历对象或数组,不返回内容。

语法:each(function(i){ return false;//结束遍历});

console.clear();
var o = {name:"daviad",age:18,sex:"男"};
$.each(o,function(index,value){
console.log(index + "," + value);
return false; //使用return false 停止循环
});
//name,daviad
//age,18
//sex,男

each()方法

console.clear();
$("a").each(function(i){ //遍历所有a标签 打印所有href属性
console.log($(this).attr("href"));
});

对应选择器的一些方法

$("td").parent(); //返回直接父元素
$("td").parents(); //返回所有父元素及祖父元素
$("td").parentsUnitl("tr"); //返回td到tr的元素
$("ul").children(); //ul下的子节点
$("div").find("p") //查找div下的所有p
$("div").siblings() //除了自己所有同级元素
$("div").next() //查找div同级下一个div 同胞元素
$("div").nextAll() //查找div后的所有div
$("div").prev() //div同级上一个div 同胞元素
$("div").prevAll() //div同级上所有
$("ul li").first() //第一个
$("ul li").last() //最后一个
$("ul li").eq(1) //第二个 从0开始
$("p").filter(".cc") //p中没有cc类名的 全部过滤掉
$("p").not(".cc") //p中不带cc类名的元素

26、Jquery 基础的更多相关文章

  1. jQuery基础---Ajax基础教程(二)

    jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一篇中, ...

  2. Web前端学习笔记之jQuery基础

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

  3. jQuery基础课程

    环境搭建 搭建一个jQuery的开发环境非常方便,可以通过下列几个步骤进行. 下载jQuery文件库 在jQuery的官方网站(http://jquery.com)中,下载最新版本的jQuery文件库 ...

  4. JQuery基础总结上

    最近在慕课网学习JQuery基础课程,发现只是跟随网站的课程学习而不去自己总结扩展的话,很难达到真正学会理解的地步. 于是先在网站上草草过了一遍课程,然后借着今天的这个时间边记录边重新整理学习一下. ...

  5. jQuery基础之选择器

    摘自:http://www.cnblogs.com/webmoon/p/3169360.html jQuery基础之选择器 选择器是jQuery的根基,在jQuery中,对事件处理.遍历DOM和Aja ...

  6. jquery基础知识汇总

    jquery基础知识汇总 一.简介 定义 jQuery创始人是美国John Resig,是优秀的Javascript框架: jQuery是一个轻量级.快速简洁的javaScript库.源码戳这 jQu ...

  7. 【jQuery基础学习】09 jQuery与前端(这章很水)

    这章主要是将如何将jQuery应用到网站中,或者说其实就是一些前端知识,对于我这种后端程序来说其实还是蛮有用的. 关于网站结构 文件结构 前端文件分三个文件夹放 images文件夹用来存放将要用到的图 ...

  8. 【jQuery基础学习】00 序

    作为一个从来没有认真学过jQuery的菜来讲,我所学的都是jQuery基础. 算是让自己从0开始系统学一遍吧.学习书籍为:<锋利的jQuery>. 虽然是个序,表示一下我是个菜,但还是来几 ...

  9. 8、网页制作Dreamweaver(jQuery基础:安装、语法)

    在<网页制作Dreamweaver(悬浮动态分层导航)>中,运用到了jQuery的技术,轻松实现了菜单的下拉.显示.隐藏的效果,不必再用样式表一点点地修改,省去了很多麻烦,那么jQuery ...

  10. jquery 基础汇总---导图篇

    最近在慕课网学习了一些jquery的基础知识,为了方便记忆,整理出来的导图 jQuery基础总共分为4个部分,分别是样式篇.事件篇.动画篇.DOM篇. 样式篇,主要介绍jQuery的基础语法,选择器以 ...

随机推荐

  1. 【Xamarin挖墙脚系列:如何从一个Apk程序转化为Xamarin的程序】

    原文:[Xamarin挖墙脚系列:如何从一个Apk程序转化为Xamarin的程序] 工欲善其事必先利其器:工具下载:http://pan.baidu.com/s/1skxjwgH 接下来,我用个小的应 ...

  2. 【Java基础01】Java InputStream的read方法

    JDK关于InputStream中的read方法的描述: (1) read() :  从输入流中读取数据的下一个字节,返回0到255范围内的int字节值.如果因为已经到达流末尾而没有可用的字节,则返回 ...

  3. 【HDOJ】2149 Public Sale

    看Discuss说是博弈论,没学到这个分类.不过仔细想了想,发现.如果m<=n,那么可能结果为m,m+1...n.否则,如果m%(n+1) == 0,那么无论如何都会输,因为无论先报价什么数,如 ...

  4. jQuery对象和DOM对象原来不一样啊

    jQuery对象和DOM对象使用说明,需要的朋友可以参考下.1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery ...

  5. 教程:使用 MongoDB、WCF、OData 和 PowerBI 构建 Azure 上的商业智能解决方案

     发布于 2014-05-20 作者 陈 忠岳 目录 概述 前提条件 创建 Windows Server 2012 Datacenter 虚拟机 通过 WCF(Windows Communicat ...

  6. [转]Oracle查询树形数据的叶节点和子节点

    oracle 9i判断是叶子或根节点,是比较麻烦的一件事情,SQL演示脚本如下: --表结构-- DROP TABLE idb_hierarchical; create TABLE idb_hiera ...

  7. Sicily1317-Sudoku-位运算暴搜

    最终代码地址:https://github.com/laiy/Datastructure-Algorithm/blob/master/sicily/1317.c 这题博主刷了1天,不是为了做出来,AC ...

  8. YII 表单验证规则

    官方文档:http://www.yiichina.com/guide/form.model 类参考手册:http://www.yiichina.com/api/CValidatorhttp://www ...

  9. python Day 2 - 编写数据库模块

    在一个Web App中,所有数据,包括用户信息.发布的日志.评论等,都存储在数据库中.在awesome-python-app中,我们选择MySQL作为数据库. Web App里面有很多地方都要访问数据 ...

  10. Gof-23种设计模式名称列表

    工欲善其事,必先利其器. 在真正使用设计模式之前,必须知道各个设计模式对应的场景.设计模式是针对某种固定的场景下产生的固定解决方案.只有明确的场景,才会有明确的设计方式和方法. 设计模式全集: Abs ...