jquer总结

前端jq总结

选择器**********************************************************************

1,基本选择

 #id

 .clss

 element    dom元素

[selector1,selector2]

 *

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

2,层级选择器

  ancetor descendant    匹配祖先下的所有后代元素

  parent》child 匹配父元素下面的所有儿子元素

  prev+next 匹配prev紧挨着的next元素。平级平辈的。向下的紧挨着的元素

  prev~siblings 匹配prev所有平辈元素,只能是向下的,弟弟级的,不能是向上

sibling    哥哥级的

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

3,简单选择器

:first  第一个   $("li:first").html("第一个");

:last    最后一个 $("li:first").html("最后一个");

:even   偶数     $("li:first").html("偶数");

:odd   奇数     $("li:odd").html("奇数");

:eq(index) 下标     $("li:eq(3)").html("第四个li变");

  $("li:eq(3),li:eq(5),").html("第四个li变");

:gt(index) 大于下标 $("li:gt(3)").html("大于四的li都变");

:lt(index) 小于下标 $("li:lt(3)").html("小于四的li都变");

:not(select)   除了这个选择器的其他元素

   $("li:not(eq(3))").html("除了下标为3的其他元素);

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

4,内容选择器

:contains(text) 指定值 $("li:contains('国')").html(“国的地方改为这些”);

:empty 内容为空 $("li:empty").html(“空的地方显示字”);

:has(selector)  内容中包含指定选择器$("li:has('a')").html(“li里面包含a的内容”);

:parent 内容不为空 $("li:parent").html(“内容不为空的地方显示字”);

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

5,可见性选择器

:hidden 匹配所有不可见元素,或者type为hidden的元素//.show(3000)显示元素方法.hide(3000)显示元素 $("li:hidden").show

:visible 匹配所有的可见元素$("li:visible").hide()   .toggle(3000)慢慢的显示,和隐藏

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

6,属性选择器

[atttibute]; 指定属性的内容 $("div[id]")查找所有含有 id 属性的 div 元素

[atttibute=value]; 指定属性值为 $("div[color=#ff]"),

[atttibute!=value]; 指定属性值不为

[atttibute^=value]; 指定属性值开头

[atttibute$=value]; 指定属性值结尾

[atttibute*=value]; 包含指定属性值

[selector][selector][selector] 满足所有$("input[id][name$='man']")找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的

,复合属性选择器,需要同时满足多个条件时使用。

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

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

7,子元素选择器

:nth-child(index/even/odd):匹配父元素下索引为指定值,或者偶数,或者奇数,索引是从一开始的 $("li:nth-child(3)");所有父元素下,下标为2的li

:first-child:匹配父元素下第一个子元素

:last-child匹配在父元素下最后一个子元素

:only-child在父元素下面只有一个子元素,独生子女

table>tr*10>td{$}*10  加Tab //$自动排序,里面的内容。可以随意

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

8,表单选择器

:input  所有的表单元素 包含select和textarea

:text 匹配文本框  $(':text').val()

:password 密码框

:radio 单选框

:checkbox 复选框

:submit 提交按钮

:reset 重置按钮

:image 图像按钮

:button 普通按钮

:file 上传文件

input:hidden 隐藏域

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

9,表单对象属性

:enabled 默认可用的元素

:disabled 匹配不可编辑的状态(课外。readonly可以传送给后台,和不可以传送给后台)

:checked 匹配选中的元素 radio checkbox 

:selected 匹配选中的元素  select

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

$("table tr:eq("+变量+") td:eq("+变量+")").html("++")

$('li:eq(2)~li').html("erererwrw");

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

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

三,DOM对象与jQuery对象

通过$('选择器')获取到都是jQuery对象

通过get~~~获得的都是DOM对象

DOM对象是以数组元素添加到jQuery对象中-----------

jquery对象转换为dom对象--------

jquery[0]  

jQuery.get(0)

$("div").click(function(){});

转为就是加下标或者get(0);

$("div")[0].onclick=function(){};

$("div").get(0).onclick=function(){};

dom对象转换为jQuery对象--------

$(dom对象)

var dom_obj=document.getElementById("div");

$(dom_obj).toggle(3000);

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

1,jQuery对标签属性的操作************

attr("name"): 获取到指定属性的值 $("img").attr("src")

attr("key","value"): 设置指定属性的值   $("img").attr("width","200")

attr(properties): 一次设置多个属性值,要求参数必须是一个json对象attr({src:"image/2.jpg","100"});

removeAttr("src");

2.jQuery对class属性的操作

 addClass("class") 添加指定的class属性值 

 removeClass("class")移除指定的class属性值

 toggoleClass(" ")    如果有指定的属性值,则删除,反之添加

class="class1 class2 class3  "

hasClass(class属性值)如果有指定的属性值,则返回true,反之,返回false

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

3,jQuery对styl属性的操作

css("name") 获取指定的css样式的属性值

css(name,value) 设置指定的cass样式的值

css(properties) 一次设置多个属性值。必须是jsom写法

 var data={backgroundColor:"#f00","500px;",height:"500px"}

 css(data)

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

4,尺寸

width():获取指定元素的宽

width(value)设置指定元素的宽

height():获取指定元素的高

height(value)设置指定元素的高

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

5,html 文本/值

html() 获取双边标记中的内容

html(value) 设置双边标记中的内容

val() 获取元素的value属性值

val(val) 设置元素的value属性值

text() 获取元素中文本内容,不包含标签

text(val) 设置元中文本内容,不包含标签

innerHTML和innerTEXT的区别

html()可以解析HTML标签

text()不可以解析HTML标签  有兼容性的区别

html("<font color='red'>测试</font>")   html()这个颜色会改变,也就是会解析html

text("<font color='red'>测试</font>")   text()这个颜色不改变,也就是不会解析

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

五,事件编程

页面载入

js中所有操作都应该放在页面加载完成后再来操作

进行页面载入

jQuery是使用read(fn)的方法来进行加载

ready(fn)有三种方式

第一种

$(document).ready(function(){

});

第二种

$().ready(function(){

})

第三种

$(function(){   只执行一次,所以定时器那些不能放在里面调用,闭包的原理

});

window.onload它与ready(fn)速度要慢一些,因为它是边加载边执行的

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

单边标记没有获取它的值的,因为它后面写的字是HTML内容。只能获取它的val

DOM对象是以数组元素的方式添加在jQuery对象中

select直接 把option写成字符串。然后加入

var $li=$('<li></li>')  $li前面最好加个$.一这个是¥对象目了然。

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

一,事件编程***************************************

页面载入 read(fn)来进行页面加载$(this)

基本事件

事件切换

事件处理

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

1 基础事件

对象。事件=事件处理程序

对象。事件方法

jQuery去掉on前缀

blur(fn) 失去焦点时

change(fn)当内容发生改变

click(fn)当鼠标点击时

focus(fn)当获取焦点时

keydown(fn)当键盘按下时

load(fn)当页面加载完成时

mouseover(fn)当鼠标经过时 下面的hover可代替

mouseout(fn)当鼠标离开时  下面的out鼠标离开可以代替

change(fn)当内容改变时

scroll(fn)当滚动条滚动时

select(fn)当内容选择时

submit(fn)当表单提交时

js的话只能绑定一个事件。,因为后面会覆盖掉。而jq可以很多。

jQuery中this除了插件机制以外,都是指向dom的

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

2,事件切换()

hover(over,out):表示鼠标经过和鼠标离开

$("div".hover)(function(){},function(){});

over:鼠标经过

out:鼠标离开

参数要求是一个匿名函数

toggle(fn1,fn2,fn3....)当鼠标第一次单击时触发第一个fn,第二次单击时,触发第二个fn,以此类推

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

3事件绑定

1.bind(type,[data],fn)对事件进行绑定,要求参数是个json对象

格式:0

参数说明

type:要绑定的事件,事件没有on前缀

fn:是指事件的处理程序

主要对事件进行绑定

$("div").bind('click',function(){

$(this).css("background","#aaa");

});

   $("div").bind({ 

mouseover:function(){

$(this).css("backgroundColor","#ff0");},

mouseout:function(){

$(this).css("backgroundColor","#aaf");},

});

2.one(type,[data],fn)对事件进行一次绑定,只绑定一次

3,unbind([type]):对事件移除绑定

参数说明:type指事件名,如果不写,就代表移除所有的事件绑定

如果写了,代表移除指定的事件绑定。

$("#div").unbind('click');没参数代表移除所有的事件绑定

有参数代表移除指定的click事件

二·效果***********************************************

1基本效果

hide():将显示的元素隐藏起来

hide(speed,[callback]):以动画的效果来隐藏,

show():将隐藏的元素显示出来

show(speed,[callback]):以动画的效果来显示,

toggle():,切换,如果这个元素是显示,则隐藏,不然则显示

toggle(switch):如果这个switch是true则代表显示,不然则代表隐藏

toggle(speed,[callback]):以动画的效果显示或者隐藏

speed:是指动画的持续时间

它也可以使用英文单词来表示

slow:缓慢

normal:正常

fast:飞速

toggle("fast")

callback 动画执行完毕后,运行的函数(也就是回调函数)

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

2 滑动效果

(speed,[callback])

它也可以使用英文单词来表示

slow:缓慢

normal:正常

fast:飞速

sideDown()

向下滑动

点击事件,调用函数的首地址,hide ,就可以点击,   如果hide()的话,不用点击,直接就打开了

sideUp

向上滑动

sideToggle 滑动切换

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

3淡入淡出

fadeln():淡入

fadeOut():淡出到指定值

fadeTo():淡入淡出到指定值

(speed,[callback])

它也可以使用英文单词来表示

slow:缓慢

normal:正常

fast:飞速

opacity 透明度  取值0-1,1显示,0隐藏,中的是半透明

-------------------------------------------------------------**]

*文档操作*********************************************************

插入

 内部插入

 append() 将内容插入到匹配元素内容的最后

 appendTo() 将内容插入匹配的元素内容的前面

 prepend() 把前面的加入到匹配的元素内容最后

 prependTo() 把前面的追加到匹配的元素内容最前

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

外部插入

 after(content)将内容插入到匹配元素标签的外部的最后

 before 将内容插入到匹配元素标签的外部最前

 insertAfter 将匹配到的元素标签插入到元素的标签外部的最后

 insertBefore 将匹配到的元素标签插入到元素的标签外部的最后

----------

2删除

empty() 清空内容,保留标签

remove()移除标签

detach()

----------

3.复制

clone([true])克隆

 如果带true 克隆元素本身,同时将事件克隆

 如果不带true,只克隆元素本身

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

4替换,

replaceWith()替换  连同标签都替换。

var $div=$("<div></div>");  创建节点

然后把 $div.html("内容")

replaceWith($div);

-----------

5包裹

wrap() 网易盖楼  对元素进行包裹wrap("<div></div>")

wrapAll() 对所有元素进行包裹,只包裹一次

wralnner() 对元素进行内部包裹 包裹里面的东西 

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

6查找

eq(index)      匹配指定索引的元素

filter(expr)   过滤,缩小查找的范围

not(expr) 匹配除了指定元素以外其它的元素

next([expr]) 查找指定元素的下一个元素

prev([expr]) 查找指定元素的上一个元素

parent()

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

插件机制

1提出问题

  jQuery.fn.extend(object)或 $.fn.extend(object)

object必须是一个json对象

$.fn.extend({

fn1:function(){

},

fn2:function(){

}

});

$(function(){

$("div").bind("");

$("div").fn1();

});

for(var i=0;i<checkboxs_leng;i++){

checkboxs_obj[i].checked = !checkboxs_obj[i].checked

}

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

this如果是jQuery的话,就可以直接使用

如果是jQuery操心dom对象的话,就要转换为$(this)

HTML DOM操作************************************

1.查找节点----------------

通过jQuery选择器

2查找属性节点-------------

使用arrt方法

3创建节点-----------------

jQuery的工厂函数$()

$(html)方法会根据传入的html标记字符串。创建一个DOM对象

并将这个对象生成一个jQuery对象后返回

append()加入节点

$("<li title='香蕉'>香蕉</li>")

4创建节点属性---------

和创建节点类似

插入节点

append()

这些

5删除节点---------------

remove();

empty()

detach()

6复制节点-----------如购物网站的,选择购买,和拖动商品就等于复制商品

clone(true)

$(this).clone(true).appendTo("body")

7替换节点

replaceWith()和replaceAll();

8包裹节点

    warp()

warpAll()

wraplnner()

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

属性操作

设置属性      attr()

删除元素属性  removerAttr()

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

样式操作

1.attr()  这个只能设置一个,多了会覆盖掉前面的

$("p").attr("class","high")

2追加样式 这个可以设置多的

addClass()

3,移除样式

removeClass()

4,切换样式

toggleClass()

5,判断是否有某个样式

hasClass()如果有则返回true,没有的话返回false

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

html()

text()

val()

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

遍历节点

1获取所有的子元素, children()方法   然后for

2 next()  方法  后面的同辈元素

3 prev()方法   前面的同辈邻居

4 siblings()     所有的同辈元素

5 closest()    取得最近的元素,不然向上,没有的话空的对象

6 parent()父级元素  parents()祖先元素

CSS-DOM操作****************************

1,css()方法

额外的

1 offset()    元素在当前视窗的相对偏移

 var offset=$("p").offset();

 var left=offset.left;

 var right=offset.right;

2 position() 获取元素相对于最近的一个position样式属性

设置为relative或者absolute的祖先节点的相对偏移

 var position=$("p").position();

 var left=position.left;

 var right=position.right;

3 scrollTop() 和 scrollLeft()方法

  获取元素滚动条距离顶端的距离和距离左边的距离

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

加载DOM

1 执行机制

老师讲的3个还有一个

$(window).load(function(){   })

等于 window.onload=function(){}

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

2 事件绑定105页

bind()

可以把 click()和mouserover()和mouseout()绑定一起

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

3 合成事件

hover()鼠标悬浮事件

toggle()鼠标连续点击

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

4 事件冒泡,比如div有点击事件,里面的span也有点击事件

  点击了的话,会导致事件错误 11页

stopPropagation() 停止事件冒泡

preventDefault()  阻止默认行为  可以阻止表单提交,

在表单中,也可以 return false;

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

5 事件对象的属性

 1 event.type

 2 event.preventDefault()方法 阻止表单提交

 3 event.stopPropagation() 阻止事件冒泡

 4 event.target 获取触发事件的元素

 5 event.relatedTarget

 6 event.pageX 和 event.pageY获取光标相对于页面的X坐标和Y坐标

 7 event.which获取鼠标的左中右键,获取键盘的按键

 8 event.metaKye为键盘事件中获取<Ctrl>按键

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

6 移除事件

 unbind([type],[data])

 one()  只执行一次,然后立即删除

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

模拟操作119

tigger("")触发自定义事件还可以传递数据

triggerHander()

bind()方法 1 绑定多个事件类型

   2 添加事件命名空间 便于管理

     这样一删除命名空间的话,只把这个空间里面的

事件删除,不在这个命名空间里面的没事

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

jQuery中的动画

1,show()   里面数字,代表秒数 显示 hide() 隐藏

2,fadeIn()方法和fadeOut()方法  改变内容的不透明度

3,slideUp()和slideDown()      改变元素的高度,缩短隐藏

4,animate()自定义动画,125页

5  stop()停止动画

其他的交互动画方法

toggle() 切换

slide Toggle() 高度

fadeTo() 不透明度

fadeToggle() 不透明度切换

width()获取宽度

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

js的getAttribute 获取属性

jQ的attr 获取/设置普通属性  prop  获取/设置 对象属性  jq里面布尔值

disabled="disabled"     js的对象.属性只能获取内置属性(不兼容)

obj.getAttribute('自定义属性');

data-abc  data开头的自定义属性

.data('')

$.get(地址,数据,回调方法)

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

//针对当前页中的静态对象有效,页面第一次加载,有效,后来加进来的,无效

$().click(); 

//

$().on();

//针对当前页中的静态对象和以后动态创建的对象有效

$('#box').live();//相当于绑定在body那里   live 1.7以上被清除了

$(document).live();//相当于绑定在整个文档对象那里  live 1.7以上被清除了

$(DOM)=>JQ

JQ=>DOM

$()[0]

jq

var $a=

DOM

var  a=

function js(obj)

{

obj.innerHTML--;

}

//js的默认值必须这样

function test(a)

{

a=a?a:1;

}

function test(a,b)

{

a=a?a:1;

b=b?b:1;

}

//通过js创建的就是动态的

//源代码就能看到的,html里面的

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

高阶

function f1(){

$.ajax({

'type':'post',

'url':'09-juqery.php',

'data':'name=xiaoming&age=4',

'dataType':'json',

//请求成功处理的回调函数

'success':function(msg){alert(msg);},

//发送之前的处理函数

'beforeSend':function(){}

//发送之前的处理函数

'complete':function(){}

//发送之前的处理函数

'':function(){}

})

}

//------------------------------

$(function(){

var ids=[];

$('#del').click(function(){

//alert($('[name="id[]"]:checked')).length;

($('[name="id[]"]:checked')).each(function(index,element){

//ids[index] =element.value;

ids.push(element.value);

});

alert(ids.join(','));//split(',')   explode() implode()

location='delete/ids/'+ids;

});

});

$(function(){

var ids=[];

$('#del').click(function(){

$('[name="id[]"]:checked').each(function(index,element){

ids.push(element.value);

});

if(ids.length>0 && confirm('确定要删除吗')){

var url='__CONTROLLER__/delete/ids/'+ids.join(',');

location=url;

}

});

});

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

function show()

{

$.get('{:U("content")}',{p:1,per:1},function(data){

$('#list').html($data);

})

}

$(function(){

show();

$("tbody").find("tr:odd").css("backgroundColor","$eff6fa");

});

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

<?php

解决兼容性问题

function createXhr(){

//在W3C中.

try{return new XMLHttpRequest()} catch(e) {}

//IE

try{ return new ActiveXObject('Microsoft.XMLHTTP')} catch(e) {}

alert('你的浏览器不支持Ajex');

}

AJAX get请求5步走

1:创建ajax对象

2:设置回调函数

3:初始化ajax对象

4:发送ajax对象

5:判断与执行

window.onload=function(){

//获取事件

//(document.getElementById(xx)获取事件

$('GO').onclick=function(){

var one=$('one').value;

var two=$('two').value;

var xhr=new XMLHttpRequest();

//设置回调

xhr.onreadystatechange= function(){

if(xhr.readyState==4 && xhr.status==200){

alert(xhr.responseText);

}

}

//设置头信息

var url ='02.php?&one=' + one + '&two=' + two + '&_=' + Math.getHouse()';

//初始化ajax

xhr.open('get',url);

//发送ajax对象

xhr.send(null);

}

}

Ajax六步走

第一步:创建Ajax对象

第二步:设置回调函数

第三步:初始化Ajax对象

第四步:设置请求头信息

第五步:发送Ajax请求

第六步:判断与执行

window.onload=function(){

$('xxx').onblur=function(){

var username = $('username').value;

//1创建ajax对象

var xhr=createXhr();

//2.设置回调函数

xhr.onreadystatechange=function(){

}

//3.初始化Ajax对象

xhr.open('post','xxx.php');

//4.设置请求头

xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');

//5.发送Ajax请求

var data='username=' + username;

xhr.send(data);

}

}

通过JQ使用AJAX

$.ajax({

url : 'xxx.php',

type: 'get',

data: {a:a,b:b},

success: function(){

//回调函数

}

})

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

 2. 完成属性可选值的禁用与否

    $("input[name=attr_input_type]").click(function(event) {

       

        var _status = $(this).val();

        if(_status == 0){

            // 手工

            $("#content").attr('disabled',true);

        }else{

            // 列表

            $("#content").attr('disabled', false);

        }

    });

原文地址:https://www.cnblogs.com/wujunbin/p/7445832.html