jQuery选项卡效果 全选全部不选取消 jQuery之css样式操作 jQuery事件绑定与删除 事件绑定其他样式

jQuery选项卡效果

<body>
<div>我是div的原始内容
    <span>我是span</span>
</div>

<input type="text">

<button>点击</button>

<script src="./jquery.min.js"></script>
<script>
    // 操作的是标签的内容

    // 1,  $().html()    获取或者设定标签内容
    //         没有参数是获取标签内容
    //         有参数是设定标签内容
    //         支持标签,可以获取标签,也可以设定标签
    //         设定内容,是全覆盖,之前的内容都会被覆盖
    //         等同于  innerHTML()

    // 获取
    console.log($('div').html());

    // 设定  支持设定标签
    // $('div').html('<a href="https://www.baidu.com">百度</a>');


    // 2,  $().text()    获取或者设定标签内容
    //         没有参数是获取标签内容
    //         有参数是设定标签内容
    //         不支持标签,只能获取标签的文本内容
    //         设定内容,是全覆盖,之前的内容都会被覆盖
    //         等同于  innerText()

    // 获取
    console.log($('div').text());

    // 设定   不支持设定标签
    $('div').text('<a href="https://www.baidu.com">百度</a>');


    // 3, $().val()   等同于 JavaScript中的 标签对象.value
    // 获取标签的value()属性值

    $('button').click(function(){
        console.log($('input').val());
    })

    // 总结
    // 1, $().html   等于  js的 innerHTML
    // 2, $().text   等于  js的 innerText
    // 3, $().val()  等于  js的 标签.value
    // 4, 特别注意:  标签的布尔属性,使用 prop() 来获取属性值

</script>
</body>

全选全部不选取消

<body>
    <button name="all">全选</button><br>
<button name="no">全取消</button><br>
<button name="not">反选</button><br>

<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">

<script src="./jquery.min.js"></script>
<script>
    // 操作布尔值,必须使用prop()

    // 1,全选效果
    // 给所有的input标签, checked 布尔属性,属性值设定为 true
    // jQuery中有隐式迭代,默认是给所有的标签都设定

    // 给全选button标签添加点击事件 --- 选中 checked 为 true
    $('[name="all"]').click(function(){
        // jQuery中有隐式迭代,会给所有的伪数组中的标签,进行设定
        $('input').prop('checked' , true);
    })


    // 2,取消效果
    // 给所有的input标签, checked 布尔属性,属性值设定为 false
    // jQuery中有隐式迭代,默认是给所有的标签都设定

    // 给全选button标签添加点击事件 --- 取消 checked 为 false
    $('[name="no"]').click(function(){
        // jQuery中有隐式迭代,会给所有的伪数组中的标签,进行设定
        $('input').prop('checked' , false);
    })

    // 3,反选效果
    // 所谓的反选,就是当前是true,取反,设定为false
    //           当期是false,取反,设定为true
    // 隐式迭代,获取属性,只能获取第一个
    // 必须要循环遍历  jQuery中 循环遍历 是 each(function(){})
    // 只有两个参数,参数1是索引,参数2是标签对象
    // 参数2,的标签对象,是JavaScript语法的形式,必须要转化为jQuery的语法形式

    $('[name="not"]').click(function(){
        // jQuery中有隐式迭代,会给所有的伪数组中的标签,进行设定
        $('input').each(function(key,item){
            // 设定 item也就是标签的 checked属性值
            // 是当前属性值取反 
            // item.prop('checked') 就是标签当前的 checked属性值
            // !(item.prop('checked')) 当前 checked属性值 取反
            // item.prop('checked' ,  属性值 )
            // 属性值,就是 当前值 取反 
            $(item).prop('checked' ,  !$(item).prop('checked') )
        })
    })

    // 总结
    // 1, 布尔类型属性的设定,必须要使用prop(),不能使用 attr()
    // 2, 隐式迭代,可以自动给所有的伪数组中的标签,添加设定,样式属性等
    // 3, 隐式迭代,只能获取第一个标签的属性或者样式
    //    要获取所有标签的样式属性等,必须使用循环遍历
    // 4, $().each(function(key,item){})
    //    循环遍历,只有2个参数
    //    参数1:标签的索引下标
    //    参数2:标签的对象
    //          是JavaScript语法形式 要 $(item) 转化为 jQuery 的标签对象
    // 5, 代码没有对错,只要能实现,都是好代码

</script>
</body>

jQuery之css样式操作

<style>
    div{
        width: 100px;
        height: 100px;
        background: pink;
        border:3px solid #000;
        color: blue;
        font-size: 20px;
    }
</style>
<body>
<div style="color: red;">我是div</div>

<script src="./jquery.min.js"></script>
<script>
    // CSS的样式操作
    // JavaScript中,通过 标签.style.属性 = 属性值 来设定行内样式
    //                   标签.style.属性 只能获取行内样式
    //                    window.getComputedStyle(标签).属性 获取执行样式
    // 在js中 font-size 要写成  fontSize ,因为js不支持 - 减号

    // jQuery中, 通过  $().css()  来设定和获取样式
    // 获取样式  $().css(属性) 
    //    获取的是执行样式
    //    带减号的样式 font-size 就写成 font-size 或者 fontSize 都行,但是要注意大小写

    // 注意,获取到的样式,都是带有 px单位的,要获取数值,需要通过parseInt,获取整数部分

    // 获取样式 $().css('属性')
    // 获取到的是执行样式
    // 
    // 行内样式可以获取
    console.log( $('div').css('color') );
    // 非行内样式
    console.log( $('div').css('border') );
    console.log( $('div').css('width') );
    // 带 -减号的属性,写成 驼峰命名法也行,直接写属性也行
    console.log( $('div').css('fontSize') );
    console.log( $('div').css('font-size') );


    // 设定样式,有两种形式
    
    // 形式1,  $().css(属性,属性值)
    // 只能定义单一属性

    // 设定随机颜色 -- js语法
    let color = `rgb(${parseInt(Math.random()*256)} , ${parseInt(Math.random()*256)} , ${parseInt(Math.random()*256)})`;

    // 将随机颜色,设定为div 的背景颜色
    // 这里的 color 是变量,不要加引号
    // 因为是变量,也不需要用 $() 转化
    // 还有标签对象,要用 $() 转化
    // $('div').css('background' , color);


    // 形式2,参数是一个对象,通过对象来设定样式
    // 对象的属性和属性值就是css样式的属性和属性值

    $('div').css({
        background : color,
        width : '200px' , 
        height : '200px' , 
    });


</script>
</body>

jQuery事件绑定

<body>
<div>我是div</div>

<script src="./jquery.min.js"></script>
<script>
    // jQuery的事件绑定分为两种语法形式

    // 语法形式1,就是想click这样,可以直接定义的事件类型
    // 这些都可以 通过 console.dir( $(标签对象) )的方式来查看
    // console.dir($('div'));   在 __proto__ 中查看
    // 语法形式: $(标签对象).事件类型(function(){})


    // 语法形式2,通过 on方法,给标签绑定事件

    // 语法形式:  $(标签对象).on( 事件类型 , 事件处理函数 )

    // $('div').on( 'click' , function(){
    //     console.log(123);
    // } )

    // 同一个标签,可以通过链式编程,绑定更多的事件类型
    // 通过链式编程,一个标签绑定多个事件
    // $(标签).on(类型,函数).on(类型,函数).on(类型,函数)....

    $('div').on( 'click' , function(){
        console.log(123);
    } ).on('mouseover' , function(){
        console.log('移入')
    }).on('mouseout' , function(){
        console.log('移出')
    })


</script>
</body>

jQuery事件绑定与删除

   <div>我是div</div>
    <script src="./jquery.min.js"></script>
    <script>
        // 相同事件类型,绑定多个事件
    // on语法是 addEventListener 形式
    // 允许同一个标签,相同的事件类型,绑定多个事件处理函数

    // 此处是绑定事件,是赋值绑定,函数的名称
    // 不是执行函数,如果有()就是是执行函数,不是赋值函数的名称

    // 只有赋值函数的名称,才能删除函数 与js的原理是相同

    const oDiv = document.querySelector('div');

    // js中,通过 addEventListener 绑定的是函数名称
    // oDiv.addEventListener('click' , fun1);
    // oDiv.addEventListener('click' , fun2);
    // oDiv.addEventListener('click' , fun3);

    // 绑定的是函数名称,删除的也是函数名称
    // oDiv.removeEventListener('click' , fun3);

    // 有自定义函数和绑定的函数名称
    $('div').on('click' , function(){
        console.log('自己写的函数')
    }).on('click' , fun1).on('click' , fun2).on('click' , fun3)

    // 删除只能删除函数名称
    // 通过函数名称,找到其中存储的函数地址,删除函数地址

    $('div').off('click' , fun3);


    function fun1(){
        console.log(11111);
    }

    function fun2(){
        console.log(22222);
    }

    function fun3(){
        console.log(33333);
    }
</script>

事件绑定其他样式

<button name="h">随机高度</button>
<button name="w">随机宽度</button>
<button name="c">随机背景颜色</button>
<div></div>

<script src="./jquery.min.js"></script>
<script>
    // 点击button按钮,给标签,设定随机颜色宽度高度等

    $('[name="h"]').on('click' , function(){
        // 随便写着玩的宽度,是100-400之间
        let randomH = parseInt(Math.random()*(400+1-100)+100);
        // 定义div标签的样式
        $('div').css('height' , `${randomH}px`);
    })


    // 参数的形式

    // 正常情况下,函数是可以定义参数的

    // on语法,如果定义第二个参数是一个对象,就可以通过对象的形式,给事件处理函数传递一个参数
    // 这个参数,jQuery,存储在事件对象 e 中
    // 是 e.data
    // e 和 js 中的事件对象 e 是基本相同的
    // js中的 事件对象 e 有的内容, jq中的e也有
    // 并且jq中专门有一个新增的data属性,来存储第二个参数,表示的数据

    // 先定义一个随机数,然后点击时赋值给宽度属性
    let randomW = parseInt(Math.random()*(400+1-100)+100);

    // on语法的第二个参数,是 { } 一个对象,会存储在 e.data 中 
    // 在函数中,可以通过 e.data 来读取参数数据
    $('[name="w"]').on('click' , { name:'张三' , age:18 , w:randomW} , function(e){
        console.log(e);
        console.log(e.data.w);

        // 现在随机宽度,数据,存储在 e.data 中, w属性中
        $('div').css('width' , `${e.data.w}px`);
    })

    // 总结1: $().on( 事件类型 , { } , 事件处理函数(e){} )
    // 第二个参数, { } 对象,会被存储在 e.data 中
    // 可以通过 e.data 来获取数据

</script>

<body>

<div>
    <h1>我是h1标签</h1>
    <span name="s" id="s">我是span标签</span>
    <p class="p">我是p标签</p>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</div>

<script src="./jquery.min.js"></script>
<script>
    // 事件委托语法形式
    // 在JavaScript中,有事件委托形式
    // 通过给父级标签,添加点击事件,通过判断点击的标签内容,来执行不同的事件处理函数

    // 事件委托语法形式必须要会,之后的标签,内容,都是动态生成的,必须要用事件委托语法形式来定义

    /*
    const oDiv = document.querySelector('div');

    oDiv.addEventListener('click' , function(e){
        // 可以判断标签名称,必须是大写
        if(e.target.tagName === 'H1'){
            console.log('我点击的是h1标签');
        }
        // 判断name属性
        if(e.target.getAttribute('name') == 's'){
            console.log('我点击的是span标签');
        }
        // 判断class等属性
        if(e.target.className == 'p'){
            console.log('我点击的是p标签');
        }
    })
    */


    // jQuery的事件委托
    // 给父级添加事件,参数1是事件类型,参数2,是字符串形式,定义标签名称,参数3是事件处理函数
    // 参数2的语法形式: 可以是标签名称,标签name属性,标签id属性,标签class属性,标签结构...
    // 只要是 选择器支持的语法形式,都可以写
    // 筛选器不行,只能是选择器语法

    // 事件委托也可以定义传参参数
    // $().on(事件类型,'选择器',{参数},事件处理函数(e){})

    $('div').on('click' , 'h1' , function(){
        console.log('我点击的是h1标签');
    }).on('click' , '#s' , function(){
        console.log('我点击的是span标签');
    }).on('click' , '.p' , function(){
        console.log('我点击的是p标签');
    }).on('click' , '[name="s"]' , function(){
        console.log('22222');
    }).on('click' , 'ul>li:nth-child(3)' , function(){
        console.log('3333');
    })


</script>
</body>

总结事件绑定样式

<script>
    // 事件绑定的语法形式
    // 1,简单的语法形式
    //     可以直接绑定定义的事件类型
    //     可以通过  console.dir( $(标签对象) )
    //     其中的 __proto__ 来查看
    //     click  mouseover mouseout  mousemove .... 

    // 2,on语法绑定

    //     语法形式1: 两个参数
    //         参数1:事件类型
    //         参数2:事件处理函数

    //     语法形式2: 三个参数,参数2,是对象形式
    //         给事件处理函数 e 中 data属性 存储数据
    //             e.data
    //         参数1:事件类型
    //         参数2:{ } 对象形式的数据
    //         参数3:事件处理函数

    //     语法形式3: 三个参数,参数2,是字符串形式
    //         jQuery的事件委托形式
    //            参数2的语法形式,必须符合jQuery中选择器的语法形式
    //         参数1:事件类型
    //         参数2:'' 字符串形式的选择器
    //         参数3:事件处理函数

    //     语法形式4: 四个参数, 
    //         参数1:事件类型
    //         参数2:'' 字符串形式的选择器
    //         参数3:{ } 对象形式的数据,存储在 e.data中
    //         参数4:事件处理函数



    // 3,off语法删除
    //     必须是绑定的函数名称或者变量名称(匿名函数)
    //     才能使用off语法删除
    //     $().off(事件类型,绑定的函数名称/变量名称)




</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值