JQuery总结2

一、jQuery入门

 jquery介绍

通过JQuery AJAX方法,可以使用http协议按Get/post请求方式从远程服务器上请求文本,HTML,XML,JOSN。将数据载入网页中。
JQuery不是生产者是搬运工,jQuery 是一个 JavaScript 库,简化了 JavaScript 编程。
jQuery 库可以通过一行简单的标记被添加到网页中。

1.使用./js/jquer.min.js

1.1导入(建议放在head里面)

<script src="./js/jquer.min.js"></script>

1.2使用(直接使用)

// jQuery //他是核心的对象 里面的方法都是通过他来调用的
console.log(jQuery('body')); //通过jquery对象来调用获取方法
// 使用$来替代jQuery
console.log($('body')); 

二、DOM操作

1.选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <ul id="box">
        <li>1</li>
        <li name='jack'>2</li>
        <li class="inner">3</li>
        <li>4</li>
    </ul>
    <script>
        // JQuery核心对象,里面的方法都是通过他来调用的
        console.log(jQuery('ul'))
        // 使用$来代替JQuery
        // $获取的是数组还是元素?
        console.log($("#box"))//id为box
        console.log($(".inner"))
        console.log($("li"))
        console.log($("ul>li"))
        console.log($("li[name='jack']"))//使用 选择器+[属性名=属性值] 获取元素
        // 按照使用的时候来决定获取的方式
        console.log($("li").length)
        Array.from($('li')).forEach(v => {
            console.log(v)
        });
        console.log($('li:first'));//获取第一个li
        console.log($('li:last'));//获取最后一个li
        console.log($('li:eq(2)'));//获取下标为2的li元素
        console.log($('li:odd'));//获取奇数下标
        console.log($('li:even'));//获取偶数下标  
    </script>
</body>
</html>

1.2筛选器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <ul>
        <li class="active">1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li class="foot">5</li>
        <li class="foot"><a href="#">6</a></li>
    </ul>
    <script>
        console.log($('li').first());//获取li第一个
        console.log($('li').last())//获取li最后一个
        console.log($('li:eq(2)').prev());//获取li下标为2的上一个
        console.log($('li:eq(2)').prev('.active'));//获取li下标为2的,并且是“.active”的上一个
        console.log($('li:eq(2)').next());//获取li下标为2的下一个
        console.log($('li:eq(2)').next('.foot'));//获取li下标为2的,并且是“.active”的下一个
        console.log($('li:eq(2)').prevAll());//获取li下标为2的上面所有
        console.log($('li:eq(2)').prevAll('.active'));//获取li下标为2的上面所有为“.active”
        console.log($('li:eq(2)').nextAll());//获取li下标为2的下面所有
        console.log($('li:eq(2)').nextAll('.foot'));//获取li下标为2的下面所有为“.active”
        console.log($('li').parent());//获取li的父元素
        console.log($('li').parent("ul"));//获取li的父元素,并且是ul
        console.log($('li').parents());//获取li所有的父元素,直到html为止
        console.log($('li').parents("body"));//获取li的所有父元素中的body,
        console.log($('ul').children());//获取ul的所有子元素(第一级子元素)
        console.log($('ul').children(".foot"));//获取ul的所有子元素(第一级子元素)中的.foot
        console.log($('li:eq(2)').siblings());//获取li下标为2的所有兄弟元素
        console.log($('li:eq(2)').siblings('.foot'));//获取li下标为2的所有兄弟元素中为.foot的元素
        console.log($('ul').find('li'));//查找元素,在ul中查找li 返回查找到的所有
        console.log($('ul').find('a'));
        console.log($('li').eq(3));//相当于$('li:eq(2)')
        
    </script>
</body>
</html>

1.3属性操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <div id="box"></div>
    <script>
        // prop 隐式添加属性(添加上去了,但是检查器里面没有,对于原本已经有的属性就是显示添加,设置)
        // 传一个参数就是获取,传两个参数就是设置
        console.log($('div').prop('id'))
        $('div').prop('class','inner')//设置class属性,值为inner
        $('div').prop('name','jack')
        console.log($('div').prop('name'));
        // attr 显示添加属性
        console.log($('div').attr('name'));//不能获取隐式添加的内容(本身已经有的属性除外)undefined
        console.log($('div').attr('class'));
        $('div').attr('age', 18)//设置class属性,值为inner
        // 删除
        $('div').removeAttr('class')//显示删除
        $('div').removeProp('name')//隐式删除
        console.log($('div').attr('class'))
        console.log($('div').prop('name'))
        // 属性操作其他方法
        // $('div').addClass() //添加class属性值
        // $('div').removeClass() //删除class属性值
        // $('div').hasClass()//判断是否存在
        // $('div').toggleClass()//对于没有的添加,已有的删除(class开关)
 
    </script>
</body>
</html>

1.4显示内容+样式操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 200px;
            height: 200px;
        }
    </style>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <div class="box">我是div的内容</div>
    <div><a href="#">hello</a></div>
    <input type="text" value="输入">
    <script>
        // 不传参就是获取,传参就是设置
 
        // 相当于innerText
        console.log($('div').eq(0).text())
        $('div').eq(0).text("我修改了")
        // 相当于innerHTML
        console.log($('div').eq(1).html())
        $('div').eq(1).html("<b>world</b>")
        // 获取input的value属性
        console.log($('input').val())
        // $('input').val('hello woeld')
 
        // 样式操作
        // 传一个参数为获取,传两个参数未设置 相当于getComputerStyle
        console.log($('div').css('width'))
        $('.box').css('backgroundColor','red')
    </script>
</body>
</html>

1.5元素操作

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <div>我是原来的div</div>
    <ul>
        <li class="save">1</li>
        <li>2 <span></span></li>
        <li>3</li>
        <li>4</li>
    </ul>
    <p></p>
    <script>
        //创建元素
        let $div = $('<div>1</div>')//创建元素节点
        // 添加操作 添加操作不能添加重复的元素
        $('body').append($div)//添加到body元素里面内容的后面
        $div.appendTo($('body'))//将div添加到body里面
        // 往前添加
        let $a = $('<a></a>')
        $a.attr('href','http://www.baidu.com')//设置href属性
        $('body').prepend($a)//body的最前面添加a标签
        $a.prependTo($('body'))//将a标签添加在body前面
        // after 在。。。之后 before在。。。之前()兄弟节点添加
        let $b = $('<b></b>')
        $('div').eq(0).after($b)//在div的后面进行添加
        $b.insertAfter($('div').eq(0))//将b标签插入到div后面
        let $p = $('<p></p>')
        $('div').eq(0).before($p)//在div前面进行添加
        $p.insertBefore($('div').eq(0))//将p标签插入到div后面
        // replace替换 替换所有
        let $h = $('<h1>hello</h1>')//将div全部替换成h1标签
        $('div').replaceWith($h)//将a标签替换进div标签(div会被删除)
        $('<a></a>').replaceAll($('p'))//将a标签替换进div标签(div会被删除)
        // // 删
 
        // $('ul').remove()//将对应的内容包括自身全部删除(事件也会被删除)
        $('li[class=save]').remove()
        // $('li').remove.('.save')
        // 删除方法 将里面的所有元素全部删除
        // $('li').empty()//将里面的节点全部清空
        // 克隆 clone 是否克隆所有的属性 是否克隆事件 默认false(不克隆)
        $('body').append($('li').eq(0).clone())
    </script>
</body>
</html>

1.6元素大小获取

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
    <style>
        div{
            width: 300px;
            height: 300px;
            margin: 50px;
            padding: 50px;
            border: 10px solid #000;
        }
    </style>
</head>
<body>
    <div></div>
    <script>
        let div = $('div') 
        // 使用css获取会带上px,返回的是一个字符串
        console.log(div.css("width"))
        console.log(div.css("height"))
        // width方法,height方法 不包含padding以及margin和border
        console.log(div.width())
        console.log(div.height())
        // innerWidth innerHeight 包含padding 不包含margin 也不包含border
        console.log(div.innerWidth())
        console.log(div.innerHeight())
        // outerWidth outerHeight 包含padding以及border 不包含margin
        console.log(div.outerWidth())
        console.log(div.outerHeight())
        // outerWidth outerHeight有一个参数,表示是否包含margin
        console.log(div.outerWidth(true))
        console.log(div.outerHeight(true))
    </script>
</body>
</html>

1.7元素位置

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
    <style>
        .box2{
            width: 300px;
            height: 300px;
            /* margin: 50px; */
            /* padding: 50px; */
            border: 10px solid #000;
            position: absolute;
            top: 100px;
            left: 100px;
        }
        .box1{
            position: relative;
            left: 50px;
            top: 50px;
        }
    </style>
</head>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
    <div class="box3"></div>
    <script>
        let box3 = document.querySelector('.box3')
        box3.innerText = '123'
        let div = $('.box2') 
        div.text('123')
        // offset 基于body偏移的位置 返回的也是一个对象
        console.log(div.offset())
        console.log(div.offset().left)
        console.log(div.offset().top)
        // position 定位 返回基于父元素定位的位置,返回一个对象
        console.log(div.position())//基于box1的定位
        console.log(div.position().left)
        console.log(div.position().top)
    </script>
</body>
</html>

1.8事件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquer.min.js"></script>
</head>
<body>
    <div><button>点我</button></div>
    <script>
        // 事件类型 事件处理函数
        $('button').on('click',data,function(e){
            console.log(e)
            console.log(e.data)
            console.log(this)
        })
 
        // 可以在事件发布的时候携带数据 使用e.data接收
        $('button').on('click',{name:"jack"},function(e){
            e = e || window.event 
            console.log(e.data)
        })
 
        // 事件委托机制
        $('div').on('click',function(e){
            console.log(this)
            console.log(e.target)
            console.log($(e.target)) 
        })
 
        // 只有在button情况下click才会触发 
        $('div').on('click','button',{name:"jack"},function(e){
            console.log(this)
            console.log(e.data)
            console.log(e.target)
        })
 
        // 取消事件off
        $('div').off()
 
        // 只执行一次的事件 
        $('button').one('click',function(){
            console.log('点击了')
        })
 
        // 屏幕滚动栏距离
        $(window).on('scroll',function(){
            console.log($(window).scrollLeft())
            console.log($(window).scrollTop())
        })
 
        // 自动执行事件
        $('button').trigger('click',{name:"jack"})
    </script>
</body>
</html>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值