zoukankan      html  css  js  c++  java
  • [JQuery] 中常用的属性和方法

    只有原生js中才有this,不管this代表谁跟定是个原生对象

    1.回调参数集合

    function f1(a){console.log("f1:"+a)}
    function f2(a,b){console.log("f2:"+a+b)}
    f1(1);
    f2(1,1);
    var $call=$.Callbacks(); 回调参数集合
    console.log($call);
    $call(f1,f2) add表示向回调函数集合中增加方法名
    $call.fire(1,2) fire表示去依次执行里面的函数,可以传参数,函数执行的时候回自动获取想要的参数
    $call.fire(1);
    $call.remove(f1);删除回调函数集合中的方法
    console.log($call.has(f1)); ->false
    has判断回调函数集合中有没有这个函数
    $call.empty();  表示清空里面的函数
    

    2.属性

    attr()
    ⬆️获取或者是设置属性 一般都是自定义属性,会显示在html标签上
    一个参数是获取
    两个参数是设置
    也可以批量设置第二个参数是对象{}
    $("#box").attr("p","p")
    $("#box").attr({a:"p",b:"b"})

    removeAttr() ->移除属性
    $("#box").removeAttr("a");
    $("#box").removeAttr("a b c") ->批量删除

    prop 获取设置属性(一般是天生自带的内置属性)如果设置的是内置属性 就会显示在html结构上,如果是自定义属性则不会显示

    class
    addClass增加/removeClass删除/toggleClass有就删除没有就增加
    $("#box").addClass("box1 box2 box");

    关于JQ中遍历的方法

    each() 遍历JQ元素集合的方法(和数组中forEach很像)
    参数是一个函数,这个函数默认执行的时候传了2各参数 第一个参数是索引,第二个参数是当前的那一项而且是个原生对象

    $("#oUl>li").each(function(index,item){
    这里的this就是item
    $(this).addClass("JQ");
    item原生对象
    给每个li增加一个class名"JQ"
    item.className+=" JQ"
    })
    

    map -->跟each一样只是他有返回值
    var $map=$("#Ulo>li").map(function(index,item){})
    console.log($map.length);
    css()样式的获取/设置,批量设置
    $("#box").css("color","red")
    $("#box").css({"color":"yellow","fontSize":"40px"})

    5.offset() 当前元素距离body 的偏移量
    $("#box").offset().left

    $("#box").offset().top

    scrollTop()/scrollLeft() 不传参数是获取 , 传了参数是修改
    $("body").scrollTop(1000):

    width()/height()不传参是获取,传参数是修改 没有单位
    $("#oUl>li").height(50)

    innerWidth()/innerHeight() 这个跟原生的client系列一样
    不传参是获取传参是修改,修改的时候padding不变改宽高

    outerWidth()/outerHeight() 相当于offset系列
    不传参数是获取,传参数是修改(没有单位)修改的时候padding+border不改变宽高
    注意outerWidth(true)/outerHeight(true),是获取并且加上margin

    JQuery中强大的链式写法

    JQuery中的方法都有返回值 返回的是个JQuery对象
    $(".box1").css({100,height:100,backgroundColor:"red"})

    文档处理

    父级.append(新元素可以是原生的也可以是JQ对象)
    var oDiv =document.createElement("div");
    $(".box1").append(oDiv);
    $(".box1").append($("#("#p1")"))

    新元素.appendTo(父级)
    $("#p1").appendTo($(".box"));

    prepend/prependTo 加在当前元素的前面
    $("ul").prepend($("#p1"));

    after/before 家在当前元素的后面/前面
    $(".box1").after($("#p1"))
    $(".box").before($("#p1"))

    JQ选择的元素.insertBefore(指定元素)
    将JQ选择的元素添加到指定元素的前面

    JQ选择出来的元素.insertAfter(指定元素)
    将JQ选择出来的元素添加到指定元素的后面

    replaceAll(选择器)
    $(".box1").replaceAll("#p1") 将#p1替换成.box1

    remove() 删除
    $(".box1").remove():
    $(".box1").remove(".box1") 把所有div中类名是box1的元素删掉

    筛选

    eq()/first()/last()
    var $li=$("ul>li")
    $li[0] 这是一个原生的元素
    $li.eq(0) 此时就得到一个JQ对象
    $li.first
    $li.last;

    同级过滤filter
    $("ul>li").filter(".li1") ->在所有的li中找类名是li1的元素

    子级过滤
    $("ul").children(".li1") ->在ul下找类名为li1的孩子

    后代过滤find()
    $("ul").find(".li1") 在ul下找类名是li1的后代(子子孙孙)

    DOM

    parent
    $(".box1").parent() ->一个父级元素
    $(".box1").parents() ->父亲 父亲的父亲 父亲的父亲的父亲.......直到html

    next()下一个弟弟
    prev()上一个哥哥
    nextAll()所有的弟弟
    prevAll()所有的哥哥
    siblings()所有的兄弟

  • 相关阅读:
    性能分析之工具篇Fiddler的AutoReponder介绍
    IIS开启GZIP压缩效率对比及部署方法 (转)
    GDI+ 中发生一般性错误 (转)
    MySQL数据的导出和导入工具:mysqldump(备份数据库的命令) (转)
    让乌龟SVN(TortoiseSVN)提交时忽略bin和obj目录 (转)
    svn 错误和解决 Files has invalid value mine (转)
    WCF HTTPS配置
    httpwatch使用方法 May 31st, 2010
    值类型和引用类型
    搬家
  • 原文地址:https://www.cnblogs.com/Jiazexin/p/7080268.html
Copyright © 2011-2022 走看看