jquery

jq概念 丰富的js库文件

引入:<script src = "    "></script>

基础:


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jQuery v3.6.1.js"></script>
</head>
<body>
    <div id="div">
        <p>123</p>
    </div>
    <input type="text" value="李四">
</body>
<script>
    let div = $('#div')
    console.log(div.html());
    console.log(div.text());
    // div.html(`<p>测试</p>`) //innerHTML
    div.text(`<p>测试</p>`)
    let inp = $('input')
    console.log(inp.val());
    inp.val('张三') //修改input内容
    
</script>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        div{
            width: 200px;
            height: 200px;
            border: 1px solid red;
            margin: 0 auto;
        }
    </style>
</head>
<body>
    <div></div>
    <div id="div2"></div>
    <div></div>
</body>
<script>
    function jQuery(str){
        return document.querySelectorAll(str)
    }

    let div = jQuery('#div2')
    console.log(div)
</script>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./jQuery v3.6.1.js"></script>
    <style>
        .box1{
            width: 200px;
            height: 200px;
            background: pink;
        }
        .box2{
            width: 300px;
            height: 300px;
            background: orange;
        }
        .show{
            display:none;
        }
    </style>
</head>
<body>
    <!-- java-id 自定义属性 用户自己设置的属性 -->
    <botton>显示</botton>
    <div class="box1" java-id="0001"></div><!-- java-id 自定义属性 用户自己设置的属性 -->
   
</body>
<script>
    let div = $('div')
    console.log(div.attr('class')); //输出
    console.log(div.attr('java-id'));
    // div.attr('class','box2')//样式改变了成为box2
    div.removeAttr('java-id')//删除属性名
    div.addClass('box2')//class名称
    div.removeClass('box1')
   
    
    $('botton').on('click',function(){
        div.toggleClass('show')//切换某个class
        console.log(div.hasClass('show'));//class存不存在
    })
</script>
</html>
# jquery

## jquery 概念

- 概念:jQuery 是一个快速、小型且功能丰富的 JavaScript 库。它使 HTML 文档遍历和操作、事件处理、动画和 Ajax 之类的事情变得更加简单,它具有易于使用的 API,可在多种浏览器中工作。
- 作用:优化dom部分代码,提高开发效率
- 特点
  - 使用jquery完成dom操作,跟原生的dom操作是不兼容的。

### jquery引入

```js
<script src="./jQuery v3.6.1.js"></script>
```

在需要的页面映入对应的JS文件



### jquery基础

- 如何选择标签

```js
let 变量名 = jQuery('css选择器')
//$ 是 jQuery的简写
let 变量名 = $('css选择器')
```

#### 修改标签

|  方法名  |    参数    |         说明         |
| :------: | :--------: | :------------------: |
| html() | 修改字符串 | 不传入参数及获取内容 |
| text() | 修改字符串 | 不传入参数及获取内容 |
|  val()   | 修改字符串 | 不传入参数及获取内容 |

```js
<body>
    <div id="div">
        <p>123</p>
    </div>
    <input type="text" value="李四">
</body>
<script>
    let div = $('#div')
    console.log(div.html());
    console.log(div.text());
    // div.html(`<p>测试</p>`) //innerHTML
    div.text(`<p>测试</p>`)
    let inp = $('input')
    console.log(inp.val());
    inp.val('张三') //修改input内容
```

#### 修改属性

|    方法名     |      参数      |                    说明                    |
| :-----------: | :------------: | :----------------------------------------: |
|    attr()     | 属性名,属性值 | 传入一个参数获取属性值,传入两个修改属性值 |
| removeAttr()  |     属性名     |                删除某个属性                |
|  addClass()   |    class名     |                 添加class                  |
| removeClass() |    class名     |               删除某个class                |
| toggleClass() |    class名     |               切换某个class                |
|  hasClass()   |    class名     | 返回值为布尔值,查询元素是否包含这个class  |

```js
<body>
    <!-- java-id 自定义属性 用户自己设置的属性 -->
    <botton>显示</botton>
    <div class="box1" java-id="0001"></div>
   
</body>
<script>
    let div = $('div')
    console.log(div.attr('class')); 
    console.log(div.attr('java-id'));
    // div.attr('class','box2')
    div.removeAttr('java-id')
    div.addClass('box2')
    div.removeClass('box1')
   
    
    $('botton').on('click',function(){
        div.toggleClass('show')
        console.log(div.hasClass('show'));
    })
</script>
```

#### 标签操作

|  方法名   |     参数     |              说明              |
| :-------: | :----------: | :----------------------------: |
| append()  | 字符串或元素 | 作为最后一个子标签加入父标签中 |
| before()  | 字符串或元素 |       追加到指定标签前面       |
| after() | 字符串或元素 |       追加到指定标签后面       |
| remove()  |   没有参数   |          谁调用删除谁          |

```js
<body>
    <div id="box"></div>
    <span>测试2</span>
</body>
    <script>
        let box = $('#box')
        box.append(`<p>测试</p>`)
        // box.append($('span'))
        box.before('<a>before</a>')
        box.after('<a>after</a>')
    </script>
```



#### css操作

|  方法名  |             参数             |                        说明                        |
| :------: | :--------------------------: | :------------------------------------------------: |
|  css()   | 属性名,值或者{属性名:值} | 一个参数为获取,两个参数为设置,多个样式修改用json |
| width()  |              值              |                      设置宽度                      |
| height() |              值              |                      设置高度                      |

```js
<body>
    <div id="div2"></div>
</body>
<script>
    // $('#div2').css('background','pink url("https://woniufile.oss-cn-hangzhou.aliyuncs.com/banner/class_time_home.png") center')
    // $('#div2').css('backgroundSize','cover')
    // json 数据格式 {键 : 值,键 : 值}
    $('#div2').css({
        'background':'pink url("https://woniufile.oss-cn-hangzhou.aliyuncs.com/banner/class_time_home.png") center',
        'backgroundSize':'cover',
        'width':'500',
        'height':'300'
    })
    //  对象  {属性名:属性值,属性名:属性值}
    // {
    //     name:'张三'
    // }
    // 获取样式
    console.log($('#div2').css('width'));
</script>
```

#### jquery遍历

| 方法名  |          参数          |          说明          |
| :-----: | :--------------------: | :--------------------: |
| each()  | 回调函数(index,item) | 循环之后 item 为js对象 |
|  eq()   |          下标          |   获取对应下标的元素   |
| first() |           无           |       第一个元素       |
| last()  |           无           |      最后一个元素      |
| index() |           无           |   获取元素对应的下标   |

- 注意:jquery获取的元素可以直接设置全部样式,和添加全部事件,这个现象我们叫做隐式遍历。

  ```js
  // jquery 隐式遍历
      $('div').css('background','pink')
  ```

```js
 // jquer遍历
    $('div').each(function(index,item){
        console.log(index);
        // console.log(item);
        // 遍历后为JS对象
        // item.style.background = 'pink'
        // 转为JQ对象
        // $(item).css('background','pink')
        console.log($(item).index());
    })
//获取对应下标的元素进行操作
$('div').eq(1).css('background','pink')
$('div').first().css('background','green')
$('div').last().css('background','blue')

```



#### jquer与js之间的转换

```js
//js对象转JQ对象
$(js对象) 
//JQ对象转JS对象
JQ对象 . get(下标)
JQ对象[ 下标 ]
```

```js
let _div = document.querySelector('div')
    $(_div).on('click',function(){
        alert(1)
    })

let _div = $('div')
    _div[0].addEventListener('click',function(){
        alert(1)
    })
```



#### jquery获取嵌套或者同级标签

|   方法名    |  参数  |           说明           |
| :---------: | :----: | :----------------------: |
| parent()  |   无   |    获取当前元素的父级    |
| parents() | 选择器 | 获取元素符合条件的祖先级 |
| children()  |   无   |       获取元素子级       |
|   find()    | 选择器 |    找满足条件的子标签    |
|   prev()    |   无   |       找上一个标签       |
|   next()    |   无   |       找下一个标签       |
| sibilings() | 选择器 |   找满足条件的兄弟标签   |

找父级

```js
<body>
    <div class="grand">
        <div class="grand">
            <div class="parent">
                <div class="child"></div>
            </div>
        </div>
    </div>
    
</body>
<script>
    $('.child').css('background','pink')
    $('.child').parent().css('background','green')
    $('.child').parents('.grand').css('background','blue')
</script>
```

找子级

```js
<body>
 
        <div class="grand">
            <div class="parent">
                <div class="child"></div>
            </div>
            <div class="parent">
                <div class="child"></div>
            </div>
            <div class="parent">
                <div class="child"></div>
            </div>
        </div>
   
    
</body>
<script>
    // 找子级
    // $('.grand').children().css('background','pink')
    $('.grand').find('.child').css('background','pink')
</script>
```

找兄弟

```js
<body>
 
        <div class="grand">
            <div class="parent box">
                <div class="child"></div>
            </div>
            <div class="parent box">
                <div class="child"></div>
            </div>
            <div id="div" class="parent">
                <div class="child"></div>
            </div>
            <div class="parent">
                <div class="child"></div>
            </div>
            <div class="parent">
                <div class="child"></div>
            </div>
            <div class="parent box">
                <div class="child"></div>
            </div>
        </div>
   
    
</body>
<script>
    // $('#div').prev().css('background','pink')
    // $('#div').next().css('background','pink')
    $('#div').siblings('.box').css('background','pink')
</script>
```

#### jquery 事件

- on

```js
//事件绑定
$('div').on('click',function(){
        alert($('div').html())
    })

//事件委托形式
$('div').on('click','p',function(){
        alert($('div').html())
    })
   
```

#### jquery动画

|   方法名    |    参数     |    说明    |
| :---------: | :---------: | :--------: |
|  fadeIn()   |  时间毫秒   |    淡入    |
|  fadeOut()  |  时间毫秒   |    淡出    |
| slideDown() |  时间毫秒   |    下滑    |
|  slideUp()  |  时间毫秒   |    上划    |
|  animate()  | {},事件毫秒 | 自定义动画 |

```js
$('#hidden').on('click',function(){
       $('div').fadeOut(500) ;
    })
    $('#show').on('click',function(){
       $('div').fadeIn(500) ;
    })
```

```js
<body>
    <div class="nav">
        <p>用户管理</p>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
    <div class="nav">
        <p>商品管理</p>
        <ul>
            <li>1</li>
            <li>2</li>
            <li>3</li>
        </ul>
    </div>
</body>
<script>
    $('.nav').on('click',function(){
        let _ul = $(this).find('ul')
        if(_ul.css('display') == 'none'){
            _ul.slideDown()
        }else{
            _ul.slideUp()
        }
    })
</script>
```

```js
$('div').on('click',function(){
        $(this).animate({
            'width':'300px',
            'height':'300px',
            'margin-top':'50px'
        },2000)
    })
```



























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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值