您现在的位置:首页 >> 前端 >> 内容

JQuery基础汇总(一)

时间:2017/3/21 9:28:00 点击:

  核心提示:jQuery入门JavaScript类库作用:javascript类库的出现,就是为了简化javascript的开发。内容:javascript类库封装了预定义的对象和函数。目...

jQuery入门

JavaScript类库

作用:javascript类库的出现,就是为了简化javascript的开发。

内容:javascript类库封装了预定义的对象和函数。

目的:帮助开发人员建立有高难度交互的Web 2.0特性的富客户端页面,并且兼容各大浏览器

扩展内容

Web 2.0相关概念:

Web 1.0:网络 -> 人(单向信息。网络是信息提供者,单向的提供和单一理解)

Web 2.0:人 -> 人(以网络为沟通渠道进行人与人沟通。网络是平台,用户提供信息,通过网络,其他用户获取信息)

Web 3.0:人 -> 网络 -> 人(人与网络之间的双向沟通。网络成为用户需求理解者和提供者)

富客户端与瘦客户端:

富客户端:(Rich Internet Applications,RIA)利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。

瘦客户端:(Thin Client)指的是在客户端-服务器网络体系中的一个基本无需应用程序的计算机终端。

jQuery的编程步骤

在HTML页面引入jQuery文件

在HTML页面定义元素

使用jQuery的选择器定位元素

// 2. 使用jQuery选择器定位HTML页面元素

var username=(“#username”);

利用jQuery提供的API完成需求

// 3. 调用jQuery的API方法

console.log($username.val());

jQuery基础内容

jQuery工厂函数

jQuery的工厂函数算做是jQuery的一个入口,通过它既可以使用选择器,也可以包装DOM对象,还可以创建元素等功能。

工厂函数的写法有两种:

第一种是()第二种是jQuery()这里的””符号就表示jQuery,是jQuery的一个约定。

不仅如此,jQuery也建议通过jQuery获取的元素变量前都增加””符号。目前有很多JS库都效仿了jQuery的这种做法,当然也引起了多个使用””的JS库一起使用时的一些冲突,主要还是集中在””的使用权上。

jQuery对象与DOM对象

DOM对象

定义:是指通过DOM获取的元素。

jQuery对象

定义:是通过包装DOM对象后产生的一种对象(jQuery自定义的全局对象)。

可以说jQuery底层其实还是DOM对象。

注意:jQuery是类数组对象,所以jQuery对象中可能包含多个DOM对象或一个DOM对象,这要看具体情况。

DOM对象转换为jQuery对象

DOM对象要想转换为jQuery对象,需要使用jQuery的工厂函数()将其包裹,返回的就是对应的jQuery对象。//DOM对象varusername=document.getElementById(“username”);//DOM对象转换为jQuery对象varusername = (username);//测试console.log(username.val());

jQuery对象转换为DOM对象

jQuery对象是数组对象。jQuery对象[索引值]可以直接转换为对应的DOM对象

// jQuery对象

var user=(“#username”);

// 1. jQuery对象是数组对象

var user1 =user[0];//测试console.log(user1.value);jQuery提供了get(index)方法。jQuery对象.get(索引值)也可以转换为对应的DOM对象//jQuery对象varuser = (“#username”);

//2.jQuery提供get(index)方法进行转换

varuser2=user.get(0);

// 测试

console.log(user2.value);

jQuery选择器

什么是jQuery的选择器

jQuery的选择器的想法是源于CSS中的选择器的用法,其实在javascript中也有类似的用法,比如querySelector( )或querySelectorAll( )方法的使用,也是借助CSS中的选择器来定位HTML页面元素的。只不过相比jQuery中的选择器,javascript中的querySelector( )或querySelectorAll( )方法的性能相对差一些而已。

jQuery的选择器最主要的作用就是用于定位HTML页面的元素。它不仅可以定位HTML页面中具体某个元素,还可以通过各种方式定位复合条件的一组元素等等。

jQuery的选择器最大的特点就是将定位元素和元素行为进行了有效的分离。这是在实际开发中非常必要的一项特点!

jQuery选择器的种类

jQuery中使用其工厂函数 $( ) 作为容器,来接收jQuery的选择器内容。而jQuery的选择器则以字符串形式传递给jQuery的工厂函数。jQuery的选择器种类大概可以分为以下几种:

基本选择器

//选择 id为 one 的元素

(‘#btn1’).click(function(){

$(‘#one’).css(“background”,”#bfa”);

});

//选择class为mini的所有元素(‘#btn2’).click(function(){

(‘.mini’).css(“background”,”#bfa”);

});

//选择元素名是p的所有元素(‘#btn3’).click(function(){

(‘p’).css(“background”,”#bfa”);

});

//选择所有的元素(‘#btn4’).click(function(){

(‘*’).css(“background”,”#bfa”);

});

//选择所有的span元素和id为two的p元素(‘#btn5’).click(function(){

$(‘span,#two’).css(“background”,”#bfa”);

});

需要注意

通配符选择器(*)默认匹配HTML页面中所有的元素。

复合选择器(多个选择器并列使用)的使用,每个选择器之间使用”,”进行分割。并且复合选择器匹配的结果是多个选择器的并集效果。

层级选择器

//选择 body内的所有p元素.

(‘#btn1’).click(function(){

$(‘bodyp’).css(“background”,”#bbffaa”);

})

//在body内的选择元素名是p的子元素.(‘#btn2’).click(function(){

(‘body>p’).css(“background”,”#bbffaa”);

})

//选择所有class为one的下一个p元素.(‘#btn3’).click(function(){

(‘.one+p’).css(“background”,”#bbffaa”);

})

//选择id为two的元素后面的所有p兄弟元素.(‘#btn4’).click(function(){

$(‘#two ~ p’).css(“background”,”#bbffaa”);

})

需要注意

selectors~selector2选择器,是获取符合selector1选择器的元素后面所有符合selector2选择器的兄弟元素。jQuery中还有一个方法siblings( ),是获取指定元素的所有兄弟元素。

基本过滤选择器

//选择第一个p元素.

(‘#btn1’).click(function(){

$(‘p:first’).css(“background”,”#bfa”);

})

//选择最后一个p元素.(‘#btn2’).click(function(){

(‘p:last’).css(“background”,”#bfa”);

})

//选择class不为one的所有p元素.(‘#btn3’).click(function(){

(‘p:not(.one)’).css(“background”,”#bfa”);

})

//选择索引值为偶数的p元素。(‘#btn4’).click(function(){

(‘p:even’).css(“background”,”#bfa”);

})

//选择索引值为奇数的p元素。(‘#btn5’).click(function(){

(‘p:odd’).css(“background”,”#bfa”);

})

//选择索引等于3的元素(‘#btn6’).click(function(){

(‘p:eq(3)’).css(“background”,”#bfa”);

})

//选择索引大于3的元素(‘#btn7’).click(function(){

(‘p:gt(3)’).css(“background”,”#bfa”);

})

//选择索引小于3的元素(‘#btn8’).click(function(){

(‘p:lt(3)’).css(“background”,”#bfa”);

})

//选择所有的标题元素.比如h1,h2,h3等等…(‘#btn9’).click(function(){

(‘:header’).css(“background”,”#bfa”);

})

//选择当前正在执行动画的所有元素.(‘#btn10’).click(function(){

$(‘:animated’).css(“background”,”#bfa”);

});

需要注意

“:not(selector)”选择器,不仅可以匹配到class属性值不是one的元素,还匹配到没有class属性的元素。这不仅仅只是一个反操作的过程。

“:even”和”:odd”选择器,表示索引值为偶数或者索引值为奇数的元素,但是需要注意的是索引值是从 0 开始的。

:header”选择器,是匹配 h1 - h6 标题元素,并不能匹配指定的某个标题元素。如果需要匹配具体某个标题元素可以使用元素选择器,所以这种用法在实际开发中很少见到。

“:animated”选择器,是匹配正在执行动画效果的元素,但需要注意的是它只能匹配jQuery执行的动画效果,而不能匹配其他技术实现的动画效果。

内容过滤选择器

//选取含有文本”di”的p元素.

(‘#btn1’).click(function(){

$(‘p:contains(di)’).css(“background”,”#bbffaa”);

})

//选取不包含子元素(或者文本元素)的p空元素.(‘#btn2’).click(function(){

(‘p:empty’).css(“background”,”#bbffaa”);

})

//选取含有class为mini元素的p元素.(‘#btn3’).click(function(){

(‘p:has(.mini)’).css(“background”,”#bbffaa”);

})

//选取含有子元素(或者文本元素)的p元素.(‘#btn4’).click(function(){

$(‘p:parent’).css(“background”,”#bbffaa”);

})

需要注意

“:has(selector)”选择器,匹配含有符合selector选择器元素的元素,并不是匹配符合selector的元素。

可见性过滤选择器

//选取所有不可见的元素.包括.

(‘#btn_hidden’).click(function(){

$(‘p:hidden’).show(3000).css(“background”,”#bbffaa”);

})

//选取所有可见的元素.(‘#btn_visible’).click(function(){

$(‘p:visible’).css(“background”,”#FF6500”);

})

需要注意

show( )方法表示将隐藏的元素显示,其参数表示动画执行的时长。(后面的内容会详细讲到)。

属性过滤选择器

//选取含有 属性title 的p元素.

(‘#btn1’).click(function(){

$(‘p[title]’).css(“background”,”#bbffaa”);

})

//选取属性title值等于test的p元素.(‘#btn2’).click(function(){

(‘p[title=test]’).css(“background”,”#bbffaa”);

})

//选取属性title值不等于test的p元素.(‘#btn3’).click(function(){

(‘p[title!=test]’).css(“background”,”#bbffaa”);

})

//选取属性title值以te开始的p元素.(‘#btn4’).click(function(){

(‘p[title^=te]’).css(“background”,”#bbffaa”);

})

//选取属性title值以est结束的p元素.(‘#btn5’).click(function(){

("p[title=est]”).css(“background”,”#bbffaa”);

})

//选取 属性title值 含有 es 的p元素.

(‘#btn6’).click(function(){

$(“p[title*=es]”).css(“background”,”#bbffaa”);

})

//组合属性选择器,首先选取有属性id的p元素,然后在结果中选取属性title值含有es的元素.(‘#btn7’).click(function(){

$(“p[id][title*=es]”).css(“background”,”#bbffaa”);

})

需要注意

“[attrName!=value]”选择器,匹配attrName属性的值不等于value的元素,但也包含没有attrName属性的所有元素。

“[attribute][attribute]”属性复合选择器,是多个属性过滤选择器并列使用,匹配的结果是多个属性过滤选择器的交集。

子元素过滤选择器

//选取每个父元素下的第2个子元素

(‘#btn1’).click(function(){

$(‘p.one:nth-child(2)’).css(“background”,”#bbffaa”);

})

//选取每个父元素下的第一个子元素(‘#btn2’).click(function(){

(‘p.one:first-child’).css(“background”,”#bbffaa”);

})

//选取每个父元素下的最后一个子元素(‘#btn3’).click(function(){

(‘p.one:last-child’).css(“background”,”#bbffaa”);

})

//如果父元素下的仅仅只有一个子元素,那么选中这个子元素(‘#btn4’).click(function(){

$(‘p.one :only-child’).css(“background”,”#bbffaa”);

})

需要注意

子元素过滤选择器的特殊用法,就是在其前面需要增加空格。不然子元素过滤选择器将不会有效果!

“nth-child(index)”选择器中的index是从 0 开始的。

表单对象属性过滤选择器

//对表单内 可用input 赋值操作.

(‘#btn1’).click(function(){

$(“#form1input:enabled”).val(“这里变化了!”);

returnfalse;

})

//对表单内不可用input赋值操作.(‘#btn2’).click(function(){

(“#form1input:disabled”).val(“这里变化了!”);

returnfalse;

})(“:checkbox”).click(countChecked);

function countChecked() {

var n = (“input:checked”).length;(“p”).eq(0).html(“有”+n+” 个被选中!“);

}

countChecked();//进入页面就调用.

(“select”).change(function(){

varstr=“”;(“select :selected”).each(function () {

str += (this).text()+“,”;

});(“p”).eq(1).html(“你选中的是:”+str+”“);

})

需要注意

“:checked”选择器,匹配checkbox和radio元素中被选中的。

“:selected”选择器,匹配select元素中option元素被选中的。

表单选择器

var alltext=(“#form1 :text”);

var allpassword=(“#form1 :password”);

var allradio=(“#form1 :radio”);

var allcheckbox=(“#form1 :checkbox”);

var allsubmit=(“#form1 :submit”);

var allimage=(“#form1 :image”);

var allreset=(“#form1 :reset”);

var allbutton=(“#form1 :button”); // 和 都可以匹配

var allfile=(“#form1 :file”);

var allhidden=(“#form1 :hidden”); // 和

test都可以匹配.

var allselect=(“#form1 select”);

var alltextarea=(“#form1 textarea”);

var AllInputs=(“#form1 :input”);

var inputs=(“#form1 input”);

("p").append("有"+alltext.length + ” 个( :text 元素)

”)

.append(” 有” + allpassword.length+”个(:password元素)”).append(”有”+allradio.length + ” 个( :radio 元素)

”)

.append(” 有” + allcheckbox.length+”个(:checkbox元素)”).append(”有”+allsubmit.length + ” 个( :submit 元素)

”)

.append(” 有” + allimage.length+”个(:image元素)”).append(”有”+allreset.length + ” 个( :reset 元素)

”)

.append(” 有” + allbutton.length+”个(:button元素)”).append(”有”+allfile.length + ” 个( :file 元素)

”)

.append(” 有” + allhidden.length+”个(:hidden元素)”).append(”有”+allselect.length + ” 个( select 元素)

”)

.append(” 有” + alltextarea.length+”个(textarea元素)”).append(”表单有”+inputs.length + ” 个(input)元素。

”)

.append(” 总共有 ” + $AllInputs.length + ” 个(:input)元素。

”)

.css(“color”, “red”)

$(“form”).submit(function () { return false; }); // return false;不能提交.

Tags:JQ QU UE ER 
作者:网络 来源:VipXiaoXio