zoukankan      html  css  js  c++  java
  • 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);

            }

        });

  • 相关阅读:
    托付和事件的使用
    在使用supervisord 管理tomcat时遇到的小问题
    无法安装vmware tools的解决方PLEASE WAIT! VMware Tools is currently being installed on your system. Dependin
    (转)Openlayers 2.X加载高德地图
    (转)openlayers实现在线编辑
    (转) Arcgis for js加载百度地图
    (转)Arcgis for js加载天地图
    (转) 基于Arcgis for Js的web GIS数据在线采集简介
    (转) Arcgis for js之WKT和GEOMETRY的相互转换
    (转)Arcgis for Js之Graphiclayer扩展详解
  • 原文地址:https://www.cnblogs.com/wujunbin/p/7445832.html
Copyright © 2011-2022 走看看