02-13jquery基础

jquery基础

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--
            jQuery实质就是对js的封装,封装的目的是为了更方便的使用js。
            js的代码写在哪儿,jq代码就可以写在哪儿,但是使用jq之前必须导入jQuery
        -->
        <!--1.导入jQuery-->
        <!--导入本地的jquery-->
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <!--导入CDN服务器上的远程的jQuery-->
        <!--<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>-->
        <!--导入jQuery后,就可以在后面使用jQuery语法-->
        <script type="text/javascript">
            //$ -> 代表jQuery对象
            //==========1.onload(js)和ready(jQuery)==============
            //onload - 网页加载完成对应的事件(包括标签加载完成和网络请求完成)
            window.onload = function(){
                pNode = document.getElementById('p1')
                pNode.innerText = 'hello jQuery!'
            }
            
            //ready
            //$(document).ready(函数)  - 网页中标签加载完成后会自动调用对应的函数
            //$(匿名函数)  - 网页中标签加载完成后会自动调用对应的匿名函数
            $(document).ready(function(){
                pNode2 = document.getElementById('p2')
                pNode2.innerText = '你好 jQuery'
            })

            //相当于上面的写法
            $(function(){
                pNode2 = document.getElementById('p2')
                pNode2.innerText = '你好 jQuery'
            })
            
        </script>
        
        <style type="text/css">
            div{
                height: 600px;
                background-color: blanchedalmond;
            }
            
            .color{
                color: red;
            }
        </style>
    </head>
    <body>
        <p id="p1">我是段落</p>
        <a href="">我是a1</a>
        <p id="p2" class="c1">我是段落</p>
        <a href="">我是a11</a>
        <img id="img1" src="img/a1.jpg"/>
        <a href="" class="c1">百度</a>
        <div id="">
            <a href="">我是a5</a>
            <p id="p3">我是段落3</p>
            <a href="">我是a2</a>
            <img src="img/slide-1.jpg"/>
            <p>我是段落4</p>
            <a href="">我是a4</a>
        </div>
        
        <a href="">我是a3</a>
        <div>
            <a href="">我是a31</a>
            <a href="">我是a32</a>
            <a href="">我是a33</a>
        </div>
        
        
        <script type="text/javascript">
            //==============2.节点操作==============
            //1)获取节点
            //语法: $('选择器')    -   返回的是jQuery的节点对象
            //选择器 - 这儿的选择器和CSS的选择器一模一样
            console.log($('#img1'))
            console.log($('.c1'))
            console.log($('p'))
            console.log($('div p'))
            console.log($('#p1,a'))
            
            console.log($('p+a'))  //选中所有紧跟着p标签的a标签
            console.log($('#p3~*'))   //选中和id值是p3的标签后面同级的所有标签
            console.log($('#p3~a'))   //选中和id值是p3的标签后面同级的所有的a标签
            console.log($('p:first'))  //选中当前页面中的第一个p标签
            console.log($('div p:first'))   //选中所有div标签中的第一个p标签
            console.log($('p:last'))        //选中当前页面中的最后一个p标签
            console.log($('div *:first-child'))   //选中div标签中的第一个子标签
            
            //2)创建节点
            //$('html标签语法')
            imageNode = $("<img src='img/thumb-1.jpg'/ title='图标'>")   //创建一个img标签
            
            //3)添加节点
            $('body').append(imageNode)             //在body的最后添加一个子标签
            $('body').prepend($('<input placeholder="请输入账号"/>'))    //在body的最前面插入一个子标签
            $('#img1').before($('<button>before</button>'))   //在id是img1的标签的前面添加一个按钮标签
            $('#img1').after($('<button>after</button>'))   //在id是img1的标签的后面添加一个按钮标签  
            
            //4)删除节点
            $('#img1').remove()     //标签.remove()  - 删除指定标签
            $('div').empty()        //标签.empty()   - 清除指定标签中的内容
            
            //5)克隆和替换(查文档)
            
            
    </script>
    
    
    <img id="img2" src="img/a2.jpg" title="服装"/>
    <div id="div">
        <p>我是段落</p>
        我是div
    </div>
    <input type="" name="user" id="user" value="张三" />
    <button id="btn1">按钮</button>
    
    <script type="text/javascript">
        //===================3.属性操作=================
        //1.获取普通属性
        //标签.attr(属性名)  - 这儿的属性名不包括innerHTML,innerText,value
        console.log($('#img2').attr('title'))
        console.log($('#img2').attr('src'))
        
        //2.修改/增加普通属性
        //标签.attr(属性名,值)
        $('#img2').attr('src', 'img/thumb-3.jpg')
        
        //3.特殊属性
        //1)innerHTML(标签内容属性)  - html()
        console.log($('#div').html())
        $('#div').html('我是新的div')
        
        //2)innerText (标签文本内容)   - text()
        console.log($('#div').text())
        $('#div').text('我是新的div2')  
        
        //3)value (单标签内容)   - val()
        console.log($('#user').val())
        $('#user').val('李四')  
        
        //4)class
        //标签.addClass(类名)   -  给标签添加class值
        $('p').addClass('color')
        //标签.removeClass(类名)  -  移除指定的class值
        $('p').removeClass('color')  
        
        //4.样式属性
        //标签.css(样式属性名)   - 获取样式属性值
        //标签.css(样式属性名, 值)  - 设置样式
        //标签.css({属性名:属性值, 属性名:属性值 ...})  - 同时设置多种样式属性
        //$('p').css('color', 'slateblue')
        //$('p').css('font-size', '20px')
        $('p').css({
            'color':'red',
            'font-size':'30px'
        })  
        
        //===================4.事件绑定==================
        //标签.on(事件名, 函数)  - 和js中的addEventListener是一样的
        $('#btn1').on('click', function(evt){
            alert('点击按钮')
            console.log(this, evt.offsetX, evt.offsetY)
        })  
    </script>       
    </body>
</html>

一:添加删除div

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <!--导入工具模块-->
        <script type="text/javascript" src="js/tool.js"></script>
        
        <style type="text/css">
            .fruitBox{
                width: 250px;
                height: 60px;
                background-color: cadetblue;
                margin-bottom: 2px;
                
                line-height: 60px;
            }
            
            .fruitName{
                float: left;
                width: 230px;
                text-align: center;
                
                font-size: 20px;
                color: white;
            }
            
            .close{
                font-size: 20px;
                color: white;
                /*设置光标样式*/
                cursor: pointer;
            }
            
            /*输入框*/
            #newFruit{
                border: 0;
                border-bottom: 1px solid #444444;
                font-size: 30px;
                width: 250px;
                height: 50px;
                text-align: center;
                
                vertical-align: bottom;
            }
            #newFruit:focus{
                outline: 0;
            }
            
            /*确定按钮*/
            #sure{
                border: 0;
                background-color: coral;
                color: white;
                font-size: 20px;
                width: 70px;
                height: 30px;
            }
            #sure:focus{
                outline: 0;
            }
            
        /*   不能运行因为还没添加随机颜色模块*/ 
        </style>
    </head>
    <body>
        <div id="show"></div>
        <div id='add'>
            <input type="" name="" id="newFruit" value="" />
            <button id="sure" onclick="addNewFruit()">确定</button>
        </div>
        
    
        <!--默认显示的水果-->
        <script type="text/javascript">
            //创建水果节点
            function creatFruitNode(name){
                //水果父节点
                var divNode = document.createElement('div')
                divNode.className = 'fruitBox'
                //水果名字节点
                var nameNode = document.createElement('font')
                nameNode.innerText = name
                nameNode.className = 'fruitName'
                //关闭按钮
                var closeNode = document.createElement('font')
                closeNode.innerText = '×'
                closeNode.className = 'close'
                //关闭按钮添加点击事件
                closeNode.addEventListener('click', function(){
                    //移除被点击的节点的父节点
                    this.parentElement.remove()
                })
                
                divNode.appendChild(nameNode)
                divNode.appendChild(closeNode)
                
                return divNode
            }
            
            fruitArray = ['苹果', '香蕉', '梨', '猕猴桃']
            //展示所有水果的节点
            showNode = document.getElementById('show')
            for(index = 0; index < fruitArray.length; index++){
                //拿水果名
                fruitName = fruitArray[index]
                //创建对应的节点
                fruitNode = creatFruitNode(fruitName)
                //添加水果节点
                showNode.appendChild(fruitNode)
            }
            
            //点击确定按钮
            function addNewFruit(){
                //拿到输入的水果名
                var newFruitName = document.getElementById('newFruit').value
                //创建对应的节点
                var newFruitNode = creatFruitNode(newFruitName)
                newFruitNode.style.backgroundColor = randomColor()
                //添加节点
                showNode.insertBefore(newFruitNode, showNode.firstElementChild)
                
                //清空输入框
                document.getElementById('newFruit').value = ''              
            }
        
        </script>

    </body>
</html>

二:缩略图

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div>
            <img src="" alt="" id="big"/>
        </div>
        <div id="small"></div>      
        
        <script type="text/javascript">
            //图片对象构造方法
            function YTImageModel(smallImage, bigImage, title=''){
                this.smallImage = smallImage
                this.bigImage = bigImage
                this.title = title
            }           
            imageArray = [
                new YTImageModel('thumb-1.jpg', 'picture-1.jpg', '图片1'),
                new YTImageModel('thumb-2.jpg', 'picture-2.jpg', '图片2'),
                new YTImageModel('thumb-3.jpg', 'picture-3.jpg', 'iamge3'),
            ]
            //大图节点
            bigImgNode = document.getElementById('big')
            bigImgNode.src = 'img/'+imageArray[0].bigImage
            //小图盒子
            smallBoxNode = document.getElementById('small')
            //创建小图标
            for(i=0; i<imageArray.length;i++){
                //拿到图片模型
                imageModel = imageArray[i]
                //创建对应的小图节点
                imageNode = document.createElement('img')
                //设置图片
                imageNode.src = 'img/'+ imageModel.smallImage
                //***通过节点来保存图片模型
                imageNode.imageMode = imageModel
                //添加节点
                smallBoxNode.appendChild(imageNode)
                //添加事件
                imageNode.addEventListener('mouseover', function(){
                    //使用鼠标点击的小图节点中保存的信息
                     bigImgNode.src = 'img/'+this.imageMode.bigImage
                     bigImgNode.title = this.imageMode.title
                })
            }                                               
        </script>       
    </body>
</html>

三:闪烁

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/tool.js"></script>
        <style type="text/css">
            body{
                text-align: center;
            }
            /*小盒子是60X60*/
            #box{
                width: 600px;
                height: 300px;
                margin-left: auto;
                margin-right: auto;
                margin-bottom: 5px;
                border: 1px solid #666666;
            }
            
            /*按钮*/
            button{
                width: 60px;
                height: 30px;
                color: white;
                background-color: red;
                border: 0;
                font-size: 16px;
            }
            button:focus{
                outline: 0;
            }
            
            .newDiv{
                width: 60px;
                height: 60px;
                float: left;
            }
            
        </style>
    </head>
    <body>
        <div id="box"></div>
        <button onclick="addAction()">添加</button>
        <button onclick="blink()" id="blink">闪烁</button>
        
        <script type="text/javascript">
        
            boxNode = document.getElementById('box')
            //添加
            function addAction(){
                //创建节点
                newDivNode = document.createElement('div')
                newDivNode.className = 'newDiv'
                newDivNode.style.backgroundColor = randomColor()
                //添加节点
                boxNode.insertBefore(newDivNode, boxNode.firstElementChild)
                //判断是否溢出
                if(boxNode.children.length > 50){
                    //删除最后一个
                    boxNode.lastElementChild.remove()
                }
            }
            
            //闪烁
            function blink(){
                //拿到按钮
                blinkBtnNode = document.getElementById('blink')
                //拿到所有的子标签
                allSmallDiv = boxNode.children
    
                if(blinkBtnNode.innerText == '闪烁'){
                    blinkBtnNode.innerText = '暂停'
                    //闪烁功能
                    timmer = setInterval(function(){
                        for(i=0; i<allSmallDiv.length;i++){
                            smallDivNode = allSmallDiv[i]
                            smallDivNode.style.backgroundColor = randomColor()
                        }
                    }, 100)                 
                }else{
                    blinkBtnNode.innerText = '闪烁'
                    //暂停功能
                    clearInterval(timmer)
                }               
            }
        </script>       
    </body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容