jquery

来源:互联网 发布:公文制作软件 编辑:程序博客网 时间:2024/06/15 04:46

一,jQuery简介

jQuery的特点:

·尺寸很小,用起来很方便,使用的是链式编程,隐式迭代

·屏蔽了浏览器的兼容问题

·插件丰富,开源,免费

jQuery并没有代替js,所以该用js的地方就要用js,因为jQuery中好多的方法没有封装,只能用js调用

二,readyonload的区别

·$(document).ready(function(){ ...});

·onload = function(){.....}

区别:

1ready可以加载多个,但是onload只能是一个,因为onload = 一个函数,用的是等于,后面再这样写onload = 一个函数,后面的这个函数就会覆盖前面的那个函数,所以onload只能加载一次,但是ready可以写多个,$(document).ready(function(){ ...});  $(document).ready(function(){ ...}); 都会加载

2ready只要等到dom对象全部加载完了,就开始加载,但是onload要等dom对象,css,图片等全部加载完了才能加载,所以ready更加有助于提高网页的响应速度

$(function(){...})是$(document).ready(function(){...});的简写,如果很多个ready,那么这样写会很麻烦,所以就有简写的$(function(){...}),功能是完全一样的;

jQuery中可以用$(window).load()来实现onload()

三,jQuery中的几个内置的函数(主要是针对array对象的)

1**$.map(arr , fn); 该函数是对arr进行操作,并返回一个新的数组对象,但是不适用与Dictionary风格的数组

var arr = [1,2,3,4];

var arr2 = $.map(arr,function(item){//这里不一定是item,可以随便写

return item*2;

});

alert(arr2);//返回一个新的数组

2**·$.each(arr,function(key, value)) ,没有返回值,可以对json可以对array操作

var json = {id:'1',name:'hwt'}; / / 来循环json

$.each(json,function(key,value){

alert(key+":"+value);

});

·$.each(arr, function(){...} ),没有参数就是值的是得到value的值

var arr = [1,2,3,4];  //来循环普通数组

$.each(arr,function(){

alert(this); //注意用的是this 而不是$(this)

});

·$.each(arr , function(item)(){....}) 只有一个参数,就是key的值

var arr = [1,2,3,4,5];

$.each(arr, function(item){

alert(item);

});

·对与json数组,要用两个循环,第一个循环循环下标,来读每一个json

var jsons = [{id:'1',name:'hwt'},{id:'2',name:'xixi'}];

$.each(jsons,function(){   // 循环数组的下标

$.each(this,function(key,value){ //循环json里面的属性

alert(key+"-"+value);

});

});

---------------------

var jsons = [{id:'1',name:'hwt'},{id:'2',name:'xixi'}];

 $.each(jsons,function(){

alert(this.name);

});

四,dom对象与jQuery对象转换

1jQuery对象就是通过jQuery包装Dom对象后产生的对象,jQuery对象只能调用jQuery封装的方法

2$("#div1").html();等同于 document.getElementById("div1").innerHTML(); $("#div1")就是得到jQuery对象;

当调用jQuery没有封装的方法时,就必须要转换为dom对象;

var dom = jq[0];

var domm = jq.get(0);

五,选择器(chooser.jsp)

id选择器:$("#idName")   ==>  documentElementById("idName");

class选择器:$(".className") 

标签选择器:$("tagName") ==> documentElementsByTagName("tagName");

多条件选择器:

$("p, div , span.className") / $("p, div , span#idName")  : 同时选择p , div , spanclassName的所有标签 / idname(用逗号分开)

$("div li") : 取出div中的所有li,不管是直接或者间接

$("div>li"): 取出div下的直接li元素

节点遍历:

$("#div1").next();下一个同辈元素

                     .nextAll()是获取节点之后的所有同辈元素 

                     .siblings(["li"]) :获取所有的同辈元素

============

$(function(){

var div = $("#menu>div"); //jQuery对象

div.addClass("divstyle");

div.click(function(){

$(this).siblings().css("background-color","");//得到兄弟姐妹

$(this).css("background-color","blue");

});

});

=============

过滤选择器:(filterChoose.jsp

·$("div : first") 选取第一个div

·$("div : last ") 选取最后一个div

·:gt(n) 大于 :lt(n)小于  :eq(n) 等于

$("#tb1 tr:gt(0):lt(3)")  // 选取大于然后重新从0,小于的,既 大于小于 ,而不是说03,而是去掉了第一个之后,然后又从0开始

        ·:even 选取偶数行:从0开始

·:odd 选取奇数行:从0开始

***相对选取

在有些时候如果以根元素为基准来找元素的话,那么就很麻烦

所以用相当的选取

$("td",$(this)) //第二个传过来的参数是以第二个参数为基准来,找$(this)下面的元素

======

$(function(){

$("div ul").click(function(){

$("li",$(this)).css("background-color","red");//以第二个参数为基准来选取元素

});

});

属性过滤选择器:

$("div[title = titleName]") --- 

$("div[name = Name]")

$("div[id = idName]")

$("div[title != titleName]") -- title不等于titleNamediv

$("div[value = values]")

$("input[type=text]")

表单过滤器:

$("#form1:enable") 选取id#form1的表单中的所有可以用的元素

$("#form1:disable") 选取id#form1 的表单中所有禁用的元素

$("input:checked") 选取被选择的元素(radio,checkbox

$("select option:selected"); 在selected中要得到选中了的option的时候,要注意

六,表单选择器

$(":input")  能够取得所有的input, textarea , select, button

$("input")  只能取得 input 的元素,像textarea等元素就取不到

取得所有的文本框:$(":text") 同理可得:$(":select") , $(":button") , $(":radio"), $(":submit")

<input type="text" >textarea的值 是 $("#id").val();

取得div,span,textarea,<a></a>,<li></li> 的值 是 $("#id").text(); 

***********************************************************

*****对于 radio 的取值是 val();

$("#setValue2").click(function(){

var str = $(":checkbox[name=interest]").val(["篮球","玩电脑"]);

});

******对于radio的设值.val([""]); 就算是对radio设值,虽然只有一个,但是也必须是这样的格式.val([""]);

$("#setValue").click(function(){

$("input[name=sex]").val(['']); 

});

===============================================

*****checkbox 的取值是 

$("#getValue2").click(function(){

var arr = new Array();

$(":checkbox[name=interest]:checked").each(function(key,value){//取值

arr[key] = $(value).val(); // 每一个checkbox的值

});

alert(arr.join(","));

});

*****checkbox的设值:

$("#setValue2").click(function(){

var str = $(":checkbox[name=interest]").val(["篮球","玩电脑"]);

});

原创粉丝点击