Jquery 常用语法

对象入门

1.jq

  • 为了 简化 程序员 对 dom操作的 语法!

2.jq入口函数

  • 为啥要有入口函数?

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-50jfYHYU-1620890052963)(assets/image-20210428102839133.png)]

  • 代码:

// 入口函数
$(function(){
    
})

3.jq对象

  • jquery就是一个函数
var version = "3.5.1"
var jQuery = function( selector, context ) {
    // 函数内部 创建了一个 jquery 实例,并返回这个实例
	return new jQuery.fn.init( selector, context );
};
  • $就是jquery函数的别名
if ( typeof noGlobal === "undefined" ) {
	window.jQuery = window.$ = jQuery;
}

4.jq和dom对象

  • dom对象:通过 webapi 获取的 dom树里的对象
  • jq对象:通过 jquery函数 获取的 就是 Jq对象
  • 注意:语法不能相互乱用

5.jq和dom互转

  • jquery 函数 接收参数时:可以是 选择器,也可以是 dom对象
    • 传 选择器:jquery函数 会根据 选择器 到dom树中 查找 dom,并将找到的 dom 装入 新的 jq对象返回
    • 传 dom对象:jquery 函数 直接 将 dom对象 装入新的jq对象 返回!
//1.dom转 jquery
let div = document.querySelector('div')
let $div2 = $(div)

//2.jquery转 dom
let $div = $('div')
$div[0].innerHTML = '不可能!'
$div.get(0).innnerHTML='绝对不可能!'
  • 能通过 [ ] 下标访问,因为 jq对象本身就是 伪数组
    能通过 get 方法访问,因为 jq对象内包含 共享的方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JlroObsU-1620890052978)(assets/image-20210428110712245.png)]

6.隐式迭代

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lLcHP87f-1620890052981)(assets/image-20210428113924159.png)]

7.jqeury事件

  • 语法:jq对象.事件( callback)
$('div').click(function(){
    //1.jq事件处理函数中的 this 就是事件源!
    // 注意:由于 事件源 都是 dom对象,所以 如果需要使用 jq函数,必须先转成 jquery对象
    $(this).css('color','red')
})

8.weibo菜单案例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y6fpk60Q-1620890052987)(assets/image-20210428142732767.png)]

9.过滤选择器,过滤器方法

9.1 过滤选择器

  • $(‘div:first’)

9.2 过滤器方法

  • $(‘div’).first()

问题:到底用哪个?

需求:当 要 获取 将 页面上 第1个div设置成红色背景,将最后一个div设置成蓝色背景,用哪种方式呢?

//1.如果用过 过滤选择器实现,将会创建 两个 jq对象
$('div:first').css('backgroundColor','red')
$('div:last').css('backgroundColor','blue')

//2.如果用过滤器方法实现 ,将会创建 三个 jq对象
let $div = $('div')
$div.first().css('backgoundColor','red')
$div.last().css('backgoundColor','blue')
  • 常见过滤方法:

    • children() - 获取所有子元素

    • find() - 获取所有后代元素

    • siblings() - 获取所有兄弟元素

    • eq() - 获取指定下标的元素

    • parent() - 获取最近父元素

    • parents() - 获取所有祖先元素(父亲、爷爷 … 一直到 根元素(html标签))

      <body>
          <div>
              <ul>
                  <li>
                      <button>
                          讨厌,死鬼
                      </button>
                  </li>
              </ul>
          </div>
      </body>
      <script>
         //通过 按钮找到 div
         let $btn = $('button')
         //方式1:
         let $div1 = $btn.parent().parent().parent()
         //方式2:
         let $div2 = $btn.parents('div')
      </script>
      
  • 找兄弟元素

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IRLTyOeA-1620890052988)(assets/image-20210428143109484.png)]

10.通过 index() 找下标

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbH2TUzw-1620890052989)(assets/image-20210428162946685.png)]

11.链式编程

  • 定义:由于 jq大部分方法,内部会返回 jq对象,所以 可以 继续 通过 .语法 调用 Jq函数
  • 原理:jq大部分方法 内部 会返回 jq对象
  • 注意:
    • jq方法 有一些 是不返回 jq对象的,没有办法 链式编程
      • 比如: $('div').css('color') 返回 颜色值字符串
    • jq方法 返回 jq对象有两种情况:
      • 返回 之前的 jq对象
      • 返回 新的 jq对象

12.css操作行内样式表

  • 强调:css方法 操作的 是 行内样式表(dom.style)
  • 用法:
    • 传1个参数,获取 行内样式表的值 : let strWidth = $("div").css('width')
    • 传2个参数,修改 行内样式表的值:$("div").css('backgroundColor','red')
    • 传对象,批量设置行内样式表的值:$("div").css({ color:"red",width:200 })

13.操作类名

  • 添加类名 $('div').addClass('类名')
  • 删除类名 $('div').removeClass('类名')
  • 切换类名 $('div').toggleClass('类名')

14.动画函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jTgGlMEI-1620890052990)(assets/image-20210428185623201.png)]

属性与操作

1.属性操作

1.1 操作标准属性

property 属性

  • 修改标准属性值:$('div').prop('id','2')
  • 获取标准属性值:$('div').prop('id')

1.2 操作自定义属性

attribute 属性(特性)

  • 修改自定义属性值:$('div').attr('myid',1)
  • 获取自定义属性值:$('div').attr('myid')
  • 修改【自定义h5】属性值:$('div').attr('data-myid',1)
  • 获取【自定义h5】属性值:$('div').attr('data-myid')

1.3 操作jq缓存数据

  • 修改设置自定义数据: $('div').data('mydog','ruiky')
  • 获取自定义数据:$('div').data('mydog')
  • 修改【自定义h5】属性值:$('div').data('myid',1)
  • 获取【自定义h5】属性值:$('div').data('myid')

2.jq提供的两个each方法

2.1 jq对象的each

  • 作用:用来 遍历 jq对象 里的 dom元素
$('div').each(function (i, dom) {
      console.log(i, '->', dom)
})
  • 作用:相当于 for in 循环,用来遍历 目标 数组 或 对象 的 成员
    • 遍历 对象: 取出 属性名 和 属性值
    • 遍历 数组:取出 下标 和 元素
let arr = ['p城', '小王子', 'awm', '猿爸爸']
$.each(arr,function(i,ele){
    console.log(i,ele)
})
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值