day 9jQuery和Ajax

1,,jQuery补充

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
        <script type="text/javascript" src="js/tool.js"></script>
        <style type="text/css">
            #box div{
                width: 200px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        
        <div id="box">
            <div>div1</div>
            <p>我是段落1</p>
            <div>div2</div>
            <p>我是段落2</p>
            <div>div3</div>
            <p>我是段落3</p>
            <div>div4</div>
            <p>我是段落4</p>
        </div>
    </body>
</html>

<script type="text/javascript">
    //1.jQuery同时选中多个标签
    //a.同时处理 - 直接操作选中的jQuery对象,就是同时操作被选中的所有标签
    $('p').css('color', 'seagreen')   // 同时设置所有p标签的文字颜色
    console.log($('p'))
    //同时给所有p标签添加点击事件
//  $('p').on('click', function(evt){
//      //注意:函数中是this都是js对象
//      console.log(this)
//      //通过js的方式获取内容
//      console.log(this.innerText)
//      //通过jq的方式获取内容
//      //js转jq: $(js对象)  -  将js对象转换成jq对象
//      console.log($(this).text())
//  })
    
    //因为p标签有多个,pNodes其实是一个容器型的jq对象, 可以通过下标将每个标签一一取出
    //注意: 单独取出来的标签都是js对象
    pNodes = $('p')
    //取指定的标签
    console.log(pNodes[0])
    console.log(pNodes[1])
    //遍历所有标签
    for(i=0;i<pNodes.length;i++){
        pNode = pNodes[i]
        //使用js的方式操作标签
        pNode.style.color = 'red'
        //使用jq的方式操作标签
        $(pNode).css('font-size', '20px')
    }
    
    //2.事件绑定
    divNodes = $('#box div')
    for(i=0;i<divNodes.length;i++){
        $(divNodes[i]).css('background-color', randomColor())
    }
    //a.标签.on(事件名, 回调函数)    -  指定的标签发送指定的事件后,自动调用对应的函数(回调函数)
//  divNodes.on('click', function(){
//      alert(this.innerText)
//  })
    
    
    //(推荐使用!!)
    //b.标签.on(事件名, 选择器, 回调函数)  - 给父标签添加事件,将事件传递给选择器选中的子标签,函数中的this是子标签
    //标签 - 父标签
    //选择器 - 在父标签中去选中子标签
    $('#box').on('click', 'div', function(evt){
        console.log(this)
        alert(this.innerText)
    })
</script>

2.简单修改标签的层次

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            div{
                width: 200px;
                height: 200px;
                
                position: absolute;
            }
            
            .layer1{
                background-color: red;
                top: 100px;
                left: 60px;
                /*z-index的值越大就越靠上层, 最大就在最上层*/
                /*z-index: 3;*/    
            }
            
            .layer2{
                background-color: yellowgreen;
                top: 50px;
                left: 130px;
                /*z-index: 4;*/
            }
            
            .layer3{
                background-color: yellow;
                /*z-index: 1;*/
            }
            
        </style>
    </head>
    <body>
        <div class="layer1"></div>
        <div class="layer2"></div>
        <div class="layer3"></div>
        
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript">
            var max = 4
            $('body').on('click', 'div', function(){
                max++
                $(this).css('z-index', max)
            })
        </script>
    </body>
</html>

3.城市选择

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <select name="province" id="province">  
        </select>
        <select name="city" id="city">
        </select>
        
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <script type="text/javascript">
            var provinceArray = [
                {name:'四川省', citys:['成都市','德阳市', '绵阳市', '巴中市', '宜宾市', '达州市']},
                {name:'云南省', citys:['昆明', '漓江', '玉溪', '大理', '西双版纳']},
                {name:'辽宁省', citys:['沈阳', '大连', '铁岭', '盘锦']}
            ]
            
            //省
            provinceNode = $('#province')
            for(i=0;i<provinceArray.length;i++){
                provinceObj = provinceArray[i]
                tempNode = $('<option>'+provinceObj.name+'</option>')
                provinceNode.append(tempNode)
            }
            //市
            cityNode = $('#city')
            cityNode.attr('selected')
            //设置默认显示的市
            for(i=0;i<provinceArray[0].citys.length;i++){
                var cityName = provinceArray[0].citys[i]
                var tempNode = $('<option>'+cityName+'</option>')
                cityNode.append(tempNode)
            }
            
            //注意: 下拉菜单切换不同的选项对应的事件是'onchange', 
            //通过获取下拉菜单的value来获取最新选中的选项的值
            provinceNode.on('change', function(evt){
                //获取选中的值
                var provinceName = $(this).val()
                for(i=0;i<provinceArray.length;i++){
                    var provinceObj = provinceArray[i]
                    //获取当前选中的省
                    if(provinceObj.name == provinceName){
                        //选中的省对应的城市
                        var cityArray = provinceObj.citys
                        //清空原来的内容
                        cityNode.empty()
                        //创建新的城市对应的option
                        for(j=0;j<cityArray.length;j++){
                            var cityName = cityArray[j]
                            var tempNode = $('<option>'+cityName+'</option>')
                            cityNode.append(tempNode)
                        }
                        
                        break
                    }
                }
            })
            
            
            
            
            
        </script>
    </body>
</html>  

4.城市选择2

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/city.js"></script>
        <script type="text/javascript" src="js/jquery.min.js"></script>
    </head>
    <body>
        <select name="" id="省">
        </select>
        <select name="" id="市">
        </select>
        <select name="" id="县">
        </select>
        
        <script type="text/javascript">
            //获取全局下拉菜单标签
            var provinceNode = $('#省')
            var cityNode = $('#市')
            var countyNode = $('#县')
            
            //=============1.默认显示=============
            //创建所有的省对应的标签
            for(var provinceName in cities){
                console.log(provinceName)
                var provinceOptionNode = $('<option>'+provinceName+'</option>')
                provinceNode.append(provinceOptionNode)
            }
            //创建市默认对应的标签
            for(var cityName in cities['北京']){
                var cityOptionNode = $('<option>'+cityName+'</option>')
                cityNode.append(cityOptionNode)
            }
            
            //创建县默认对应的标签
            for(var index in cities['北京']['北京']){
                var countyOptionNode = $('<option>'+cities['北京']['北京'][index]+'</option>')
                countyNode.append(countyOptionNode)
            }
            
            
            //==============点击切换=============
            //1.省下拉菜单添加事件
            provinceNode.on('change', function(){
                //获取选中的值
                var provinceSelectedValue = $(this).val()
                //根据选中的省获取对应的市信息
                var cityInfo = cities[provinceSelectedValue]
                
                //1.更新市信息
                //清空市下拉菜单
                cityNode.empty()
                //创建选中的省对应的市的标签
                for(var cityName in cityInfo){
                    var cityOptionNode = $('<option>'+cityName+'</option>')
                    cityNode.append(cityOptionNode)
                }
                
                //2.更新县信息
                countyNode.empty()
                var countyArray = cityInfo[cityNode.val()]
                for(var index in countyArray){
                    var countyName = countyArray[index]
                    var countyOptionNode = $('<option>'+countyName+'</option>')
                    countyNode.append(countyOptionNode)
                }
                
            })
            
            //2.市下拉菜单添加事件
            cityNode.on('change', function(){
                var citySelectedVale = $(this).val()
                var countyArray = cities[provinceNode.val()][citySelectedVale]
                countyNode.empty()
                for(index in countyArray){
                    var countyName = countyArray[index]
                    var countyOptionNode = $('<option>'+countyName+'</option>')
                    countyNode.append(countyOptionNode)
                }
                
            })
            
            
            
            
        </script>
    </body>
</html>

5.按钮切换

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            button{
                width: 150px;
                height: 40px;
                background-color: rgba(0,0,0,0);
                font-size: 25px;
                border: 0;
            }
            button:focus{
                outline: 0;
            }
            
            #btn1{
                color: red;
            }
            
            #imgbtn2{
                display: none;
                
            }
            
        </style>
    </head>
    <body>
        <div id="">
            
        </div>
        <button id="btn1">扫码登录</button>
        <button id="btn2">账号登录</button>
        <div id="">
            <img id="imgbtn1" src="img/picture-1.jpg"/>
            <img id="imgbtn2" src="img/picture-2.jpg"/>
        </div>
        
        <script type="text/javascript" src="js/jquery.min.js"></script>
        <!--添加事件-->
        <script type="text/javascript">
            //保存当前选中的按钮的id值
            var seletedId = 'btn1'
            //给按钮添加点击事件
            $('body').on('click', 'button', function(){
                //点击的就是选中的按钮
                if(this.id == seletedId){
                    return
                }
                //更新当前的状态
                $(this).css('color', 'red')
                $('#img'+this.id).css('display', 'block')
                
                //恢复之前选中的按钮的状态
                $('#'+seletedId).css('color', 'black')
                $('#img'+seletedId).css('display', 'none')
                
                //更新seletedId
                seletedId = this.id
            })
        </script>
    </body>
</html>

.6.Ajax基础

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <button onclick="getData()">刷新</button>
    </body>
    <script type="text/javascript" src="js/jquery.min.js"></script>
    <script type="text/javascript">
        //1.什么是Ajax 
        //A - asynchronous   ja - javascript   x - xml (异步js+xml)
        //Ajax类似于python中的requests第三方库,专门提供js中的网络请求功能(http请求)
        //2.使用方法
        //1)$.get/post(url,data,fn,type)   - 获取url接口提供的数据(get的接口)
        //url  -  请求地址(字符串)
        //data - 参数(对象)
        //fn - 回调函数(函数), 请求结束后,会自动调用这个函数; 这个函数的参数就是请求结果
        //type - 返回数据的类型(字符串,例如: json, html, text...)
        //http://api.tianapi.com/meinv/?key=772a81a51ae5c780251b1f98ea431b84&num=10
        function getData(){
            $.get('http://api.tianapi.com/meinv/', {key:'772a81a51ae5c780251b1f98ea431b84', num:30},function(result){
                var newsLists = result['newslist']
                for(i=0;i<newsLists.length;i++){
                    news = newsLists[i]
                    imgNode = $('<img style="width: 200px; height: 200px;"/>')
                    imgNode.attr('src', news['picUrl'])
                    $('body').append(imgNode)
                    
                }
            })
        }
        //$.ajax({url:请求地址, type:'get'/'post', async:是否异步, success:回调函数, data:参数对象})
        $.ajax({
            type:"get",
            url:"http://api.tianapi.com/meinv/",
            data:{key:'772a81a51ae5c780251b1f98ea431b84', num:10},
            async:true,
            success:function(result){
                console.log(result)
            }
        });
        
        
        
    </script>
    
</html>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,401评论 1 45
  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 13,308评论 1 52
  • 第一章 入门 基本功能:访问和操作 dom 元素,控制页面样式,对页面的事件处理,与ajax完美结合,有丰富的插件...
    X_Arts阅读 4,709评论 0 2
  • //1018 锤子剪刀布(20 分)//大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如下://现...
    笔墨流年乱浮生阅读 1,535评论 0 0
  • 昨天晚上8点多回到家还没有吃过晚饭,有个客户打电话说下午制作的会议文件有问题,询问我能不能回去帮他重新做一下呢?虽...
    正娟_d019阅读 1,265评论 0 0

友情链接更多精彩内容