14-jquery知识点

$的三种用法
$其实就是一个函数,以后用$的时候 $(); 参数不同,功能就不同
1)参数是一个function, 入口函数
      $(function(){ });
2)直接写dom元素,封装为jQuery对象
      $(document).ready(function(){ });
3)  参数是一个字符串,用来找对象
      $("div")
      $("#btn")
      $(".classname")
  1. 等着dom元素加载结束加载完再加载 两种入口函数:
    **1) $(function(){ })
    2) $(document).ready(function(){ });

  2. 注意:
    只有 jQuery 对象才能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 方法。

  3. dom对象与jQuery对象相互转换
    ( ′ d i v D o m ′ ) j Q u e r y 对 象 与 d o m 对 象 相 互 转 换 ( ('divDom') jQuery对象与dom对象相互转换( (divDom)jQuerydom对dom对象包装后产生的对象是伪数组形式)
    $(‘div’)[index]
    $(‘div’).get(index);

  4. 选择器
    $(’#id’) ID
    $(’.class’) 类
    $(’*’) 通配符
    $(‘div’) 标签
    $(‘div,p,li’) 并集
    $(‘li.current’) 交集
    $(‘ul>li’) 子代选择器
    $(‘ul li’) 后代选择器

  5. 隐士迭代
    遍历内部 DOM 元素(伪数组形式存储)的过程就叫做隐式迭代。
    简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,
    而不用我们再进行循环,简化我们的操作,方便我们调用。
    $(‘div’).hide(); // 页面中所有的div全部隐藏,不用循环操作

  6. jQuery 筛选选择器
    :first :last :eq(index) 获取第一个,最后元素 第index个元素
    :odd :even 奇数 偶数元素
    :checked 选项框被选中的个数
    $(“ul li:first”).css(“color”, “red”);
    $(“ul li:eq(2)”).css(“color”, “blue”);
    $(“ol li:odd”).css(“color”, “skyblue”);
    $(“ol li:even”).css(“color”, “pink”);

  7. jQuery 筛选方法 所有jQuery方法都自带遍历
    **parent() 最近一级
    **parent(“祖先级的父级名”)
    **children(selector) 最近一级 亲儿子
    **find(selector) 所有后代
    **siblings(‘li’) 除了当前元素其他的亲兄弟元素
    **eq(index) 第index个元素(直接接变量)
    nextAll([expr]) prevtAll([expr]) 当前元素之前或之后的所有同辈元素
    hashClass(class) 检查元素是否有某个特定的类,如果有返回true
    index() 得到元素的索引号

  8. $(this) 当前元素
    show() hide() 显示 隐藏

  9. 操作样式
    1.参数只写属性名,则是返回属性值
    var strColor = $(this).css(‘color’);

    1. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
      $(this).css(’‘color’’, ‘‘red’’);
      以对象的形式修改样式
      $(this).css({width:400,height:300});

    3.添加类
    $(“div”).addClass(“current”);
    4.删除类
    $(“div”).removeClass(“current”);
    5.切换类
    $(“div”).toggleClass(“current”);

  10. 链式操作
    $(this).addClass(‘current’).siblings().removeClass(‘current’); 添加的类不会影响原先的类

  11. jQuery 效果

    1. hide/show/toggle([ speed ],[ easing ],[ fn ]);
      参数可以省略,无参数直接显示
      speed :slow normal fast 1000(毫秒的数值)
      easing :swing linear
      fn :回调函数 动画结束 函数执行一次

    2)滑入滑出动画,常见有三个方法:
    slideDown / slideUp / slideToggle([ speed ],[ easing ],[ fn ]);

    后面的回调函数fn是指在进行动画之后的操作,例如某个元素划出动画(删除元素)
    slideUp只是上滑消失,但是并没有删除,需要通过fn进行删除操作
    slideToggle   实现上滑和下滑
    

    3)事件切换
    $(this).hover(function () { }, function () { } )
    鼠标经过和离开的复合
    如果只写一个 ,鼠标经过和离开都执行这个函数

    4)淡入淡出动画 (效率低,用定时器做的)
    常见有四个方法:
    fadeIn() / fadeOut() / fadeToggle() 三个参数 ([ speed ],[ easing ],[ fn ]);
    fadeTo() ; 四个参数 ([ speed ],[ easing ],[ fn ],[ opcity ])
    $(“div”).fadeIn(100)
    修改透明度
    fadeTo(1000,0.7);速度和透明度必须写

    5)自定义动画
    animate( params, [ speed ] , [ easing ],[ fn ]);
    params:想要更改的样式属性,以对象形式传递,必须写。
    属性名不带引号,其他参数可以省略
    $(“div”).animate({
    top:100,
    width:300,
    opcity:0.8
    },500)

  12. 动画排队
    动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行。
    1)停止动画:stop() 谁做动画 写在谁的前面,停止一个动画
    2)清空所有的动画:stop(true ,false)
    第一个参数:是否清除队列 第二个参数:是否跳转到最终效果
    3)是否正在做动画::animate

**13. 设置元素自带的属性
1)获取属性名:prop(“属性名”);
修改属性:prop(“属性名”,“修改的属性值”);
2)获取自定义属性名:attr(“属性名”);
修改属性:attr(“属性名”,“修改的属性值”);
3)prop() 除了普通属性操作,更适合操作表单属性:disabled / checked / selected 等。
4)data(“name”,“value”) 向被选元素附加数据 data(“name”) 取数据
同时可以读取HTML5中自定义属性 data-index 得到的是数字型
5)html() 拿到文本值和标签 获得元素的值
text() 只拿到内容 获得元素文本内容
val() 拿到表单的值 val(3) 添加参数,更改数值
6)toFixed(); 保留几个小数
*7)chang();input文本值改变 checked,disable,selected 的值改变

  1. jQuery 元素操作
    1)遍历:
    1> $(“div”).each() 做数据处理
    ( " d i v " ) . e a c h ( f u n c t i o n ( i n d e x , d o m E l e ) ) x x x ; ; i n d e x 是 每 个 元 素 的 索 引 号 d o m E l e 是 每 一 个 d o m 元 素 而 不 是 j Q u e r y 元 素 , 用 的 时 候 转 换 成 ("div").each(function( index, domEle )){ xxx; }; index 是每个元素的索引号 domEle是每一个dom元素 而不是jQuery元素,用的时候转换成 ("div").each(function(index,domEle))xxx;;indexdomEledomjQuery(Dom)
    2> $.each() 做对象遍历
    $.each(objext, function( index , domEle )) { xxx; }
    index 遍历属性名, domEle 遍历属性值

    2)创建
    $("

  2. ")

    3)添加
    $(“ul”).append(“内容”) 放到元素后面
    $(“ul”).prepend(“内容”) 放到元素前面

    $(".text").before("内容")  放到兄弟元素前面
    $("text").after("内容")  放到元素后面
    

    4)删除
    $(“ul”).remove() 删除ul 自杀
    $(“ul”).empty() 清空里面的内容 保护子节点
    等价于 $(“ul”).html("")

  3. 事件处理 on()
    elemengt.on(event,[selector],fn)
    1.event:一个或多个用空格分隔的事件类型,如click或keydown
    2.selector:元素子元素的选择器
    3.fn: 回调函数,即绑定在元素身上的监听函数

    *1)同时绑定多个事件
    elemengt.on({
    moverenter : function () { },
    click:function() { }
    });
    elemengt.on(“moverenter moverleaver”,function() { });

    *2)事件代理
    给ul绑定事件 但是li触发 click不能给动态元素添加绑定 on可以给未来创建的元素绑定事件
    $(“ul”).on(“click”, “li”, function() {
    alert(11);
    });

    *3)动态添加事件
    $(“ol”).on(“click”, “li”, function() {
    alert(11);
    })
    var li = $(“

  4. 我是后来创建的
  5. ”);
    $(“ol”).append(li);

  6. 解除事件
    off() 解除所有事件,如果有参数,则解除某一个事件
    $(“ol”).off() 解除ol上面的所有事件
    $(“ol”).off(“click”)解除ol上面的click事件
    $(“ol”).off(“click”, “li”)解除事件委托
    one() 只执行一次

  7. 自动触发
    1)元素.事件
    $(".div").click()

    2)元素.trigger(“事件”)
    $(".div").trigger(“click”)

    3)元素.triggerHandler(“事件”) 不会触发元素本来的默认事件
    $(".div").triggerHandler(“click”)

  8. jQuery 事件对象
    stopPropagation() 阻止冒泡
    preventDefault() 阻止默认行为 return false

  9. jQuery 拷贝对象
    $.extend( [ deep ],target, obj);
    默认情况是false(浅拷贝),并且false是不能够显示的写出来的。如果想写,只能写true(深拷贝)
    把obj拷贝给target 如果target中有相同的值 会被覆盖
    deep :【默认是false】如果是false 则是浅拷贝,只是将地址拷贝过去(缺点:如果更改拷贝的内同,原来的数据也会改变) true是深拷贝

6.解决 $ 与 jQuery 冲突的问题(多库共存)

var suibian = jQuery.noConflict();
  1. jQuery 插件常用的网站:

    1. jQuery 插件库 http://www.jq22.com/
    2. jQuery 之家 http://www.htmleaf.com/
  2. 图片懒加载插件
    懒加载只需引入html 和 js操作 即可,此插件不涉及css。
    必须在最后方加入script vscode ctrl+h 替换

  3. 全屏滚动插件
    ​ 全屏滚动插件介绍比较详细的网站为:http://www.dowebok.com/demo/2014/77/

  4. 数组对象转换成字符串
    JSON.stringify(数组对象);
    字符串转换成数组对象
    JSON.parse(字符串);

  5. jQuery 尺寸
    width()/height() 匹配元素的宽高
    innerWidth()/innerHeight()包括padding
    outerWidth()/outerHeight() 包括padding,border
    outerWidth(true)/outerHeight(true) 包括padding,border,margin
    1>如果参数为空,则返回对应的值
    2>如果参数不为空,更改值
    3>参数可以不必写单位

  6. 获取位置
    offset()
    获取设置距离文档的位置 跟父级没有关系
    有两个属性top、left offset().top得到距离文档顶部的距离
    可以设置元素的偏移量:offset({top:90,left:70})

    position()
    获取距离带有定位父级文档的位置
    如果没有带有定位的父级,则以文档为准
    只能获取,不能设置
    scrollTop() scrollLeft()
    元素被卷去的距离
    KaTeX parse error: Expected '}', got 'EOF' at end of input: …ion(){ alert((document).scrollTop())
    })

页面滚动的效果,做电梯导航的时候用
只有元素才能做动画
var current = ( . f l o o r . w ) . e q ( (.floor .w).eq( (.floor.w).eq((this).index).offset().top;
$(“html,body”).animate({ scrolltop:current })

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值