day27-jquery

17 jQuery基础

1.什么是jQuery

jQuey就是javascript 的第一个第三方库,主要针对标签进行封装(包括节点操作,属性操作,样式操作,事件等 ), 目的是为了让js写起来更快更方便

2.怎么写jQuery代码

a.通过script标签导入jQuery文件
b.在jQuery中所有的内容都是封装到jQuery对象中的,jQuery对象可以用$代替

节点操作

window.onload - 当网络中的内容全部加载成功后触发的事件(如果有网络图片,会等图片加载成功)
$(函数) - 函数中的函数体会等标签全部添加成功后执行

1.等待加载完成

a.
window.onload = function(){
}
b.等待页面中所有的标签添加成功,就会触发
完整版 &(document).ready(function(){})
c.简写版

$(function(){
                //引入inter1 实现暂停功能
                //封装一个计时器
                var inter1;
                function timeAction(){
                    inter1 = window.setInterval(function(){
                        console.log('!!!!')
                    }, 1000);
                }
                timeAction()
                $('#aa').on('click',function(){
                    //如果在计时,点击则停止, inter1 赋值为null表示暂停状态
                    if(inter1){
                        window.clearInterval(inter1)
                        inter1 = null
                    //如果计时器是暂停状态,点击则重新启动 
                    }else{
                        timeAction()
                    }
                });

2获取节点操作(选择器)

a.选择器直接选择相应的标签
(选择器) - 选择器是在css中怎么写这儿就怎么写('标签选择器') - 选择网页中所有的指定标签,返回值是jQUery对象,不是数组
注意:如果选择器同时选择了多个,返回值和选择一个的时候的类型是一样的
可以通过结果直接对选中的所有标签一起操作

                                var divNodes = $("div");
                console.log('====',divNodes);
                divNodes.css('color','red');
                
                var div11Node = $('#div11');
                console.log(div11Node);
                console.log($('.cdiv1'))
                console.log($('a,p'))
                console.log($('#div2 a'))
                

b.父子选择器
console.log(('#div2>a') - 和后代选择器效果一样 console.log(('p+a')) - 获取紧贴着p标签的a标签
console.log(('#p1~*')) - 获取的是id是 p1的标签后面的所有的通缉标签 console.log(('div:first')) - 第一个div标签
console.log(('p:last')) - 最后一个p标签 console.log(('div *:first-child')) 找到所有div标签中的第一个子标签

3.创建标签

('HTML标签语法') 例如: $('<div style="color: red">我是div</div>')

var imgNode = ('<img src = "img/a1.jpg"/>') vardivNode =('<div style="ackground-color: #00BFFF; width: 100px; height: 100px;"></div>')

4.添加标签

父标签.append(子标签) - 在父标签的最后面添加子标签
父标签.perpend(子标签) - 在父标签的最前面添加子标签

    $('body').append(imgNode)      
                $('body').prepend(divNode)  
                $('h1').before($('<h1 style="color:yellowgreen;">我是标题0</h1>'))
                $('h1').after($('<h2 style="color: slateblue;">我是标题22</h2>'))  

5.删除标签

标签.empty() - 清空指定标签
标签.remove() - 删除指定标签

                            $('#div2').empty()
                $('h1').remove()

6.拷贝和替换(见手册)

7.动态添加:

//1.普通属性的获取和修改 - 除了innerHTML,innerText以及value
                //标签.attr(属性名)  - 获取指定的属性值
                //标签.attr(属性名, 值) - 修改/添加属性
                var text1 = $('img').attr('src')   // 获取属性的值的时候只获取被选中标签中的第一个标签
                console.log(text1)
                console.log($('a').attr('href'))   
                $('img').attr('title', '图片1')  // 修改和添加会针对所有选中的标签 
                
                //2.标签内容属性
                // 双标签.html()
                // 双标签.text()
                // 单标签.val()
                //注意:上面的函数不传参就是获取值,传参就是修改值
                console.log($('p').html())   // 取完整代码
                console.log($('p').text())   // 只取文字
                console.log($('input').val()) //单标签中的val属性
                $('p').html('我是新的段落')    //
                $('input').val('请输入账号')
                
                //3.class属性 - HTML中一个标签可以有多个class值,多个值用空格隔开
                //标签.addClass(class值) - 给标签添加class值
                //标签.removeClass(class值) - 移除标签中指定的class值
                $('div').addClass('w')
                $('#div1').removeClass('c')
                
                //4.样式属性
                //a.获取属性值
                //标签.css(样式属性名) - 获取样式属性值
                var height = $('p').css('height')
                console.log(height)
                //b.修改和添加
                //标签.css(样式属性名, 值) - 修改属性值
                $('p').css('background-color', 'cornflowerblue')
                //标签.css({属性名:值, 属性名2:值2...}) - 同时设置多个属性
                $('p').css({
                    "color":"yellow",
                    'font-size':'30px'
                })
                

                //5.事件
                //a.标签.on(事件名,回调函数) - 给标签绑定指定的事件(和js中的addEventLinsenner一样)
                //事件名不需要要on
                $('button:first').on('mouseover',function(){
                    console.log(this)
                    //注意: this - js对象, 可以直接js对象的属性和方法
                    //     $(this) - jQuery对象,可以使用jQuery对象的属性和方法
                    // $(js对象) - 将js对象转换成jQuery对象
                    //this.innerText = '进入!'
                    $(this).text('进入~')
                });
                
                //b.父标签.on(事件名,选择器,回调函数) - 在父标签上添加事件,传递给选择器对应的子标签
                //选择器 - 前面标签的后代标签(子标签/子标签的子标签)
                $('#v01').on('click','.v011 .v0111',function(){
                    console.log(this)
                })

ajax的使用

<!--
    Ajax(由jQuery封装的) - asynchronous javascript + xml(异步js+xml)
    一般用来做网络数据请求,类似python中requests库(http请求)
    
    语法:
    1.get请求
    $.get(url,data,回调函数,返回数据类型)  
    - url:请求地址(字符串)
    - data:参数列表 (对象)
    - 回调函数:请求成功后自动调用的函数(函数名,匿名函数)
    - 返回数据类型:请求到的数据的格式(字符串,例如:'json')  
    
    2.post请求
    $.post(url,data,回调函数,返回数据类型)  
    - url:请求地址(字符串)
    - data:参数列表 (对象)
    - 回调函数:请求成功后自动调用的函数(函数名,匿名函数)
    - 返回数据类型:请求到的数据的格式(字符串,例如:'json')  
    
    3.ajax
    $.ajax({
        'url':请求地址,
        'data':{参数名1:值1, 参数名2:值2},
        'type':'get'/'post',
        'dataType':返回数据类型,
        'success':function(结果){
            请求成功后要做的事情
        }
    })
    
-->
<!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/jquery.min.js"></script>
        
    </head>
    <body>
        <button>刷新</button><br />
        <!--1.get请求-->
        <script type="text/javascript">
            //1.请求数据
            var page = 1;
            function getData(){
                var url = 'https://www.apiopen.top/satinApi'
                page++
                $.get(url, {'type':'2', 'page':page}, function(re){
                    //re就是请求结果
    //              console.log(re)
                    var allData = re.data;
                    for(var x in allData){
                        var data = allData[x];
                        var bimageuri = data.profile_image;
                        var imgNode = $('<img style="width: 100px; height: 100px;"/>').attr('src', bimageuri)
                        $('body').append(imgNode)
                    }
                });
            }
            //2.刷新
            $('button').on('click',getData);
            
        </script>
    </body>
</html>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,450评论 1 45
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,727评论 2 17
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,142评论 0 3
  • 前端开发面试题 <a name='preface'>前言</a> 只看问题点这里 看全部问题和答案点这里 本文由我...
    自you是敏感词阅读 757评论 0 3
  • 进程和线程的区别 1.定义 进程:具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和...
    肆意咯咯咯阅读 214评论 0 0