Jquery WEB前端开发总结

初识JQ

Jquery

jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。由约翰·雷西格(John Resig)在2006年1月的BarCamp NYC上发布第一个版本。当前是由Dave Methvin领导的开发团队进行开发。全球前10,000个访问最高的网站中,有65%使用了jQuery,是当前最受欢迎的JavaScript库。

JQ操作DOM

$("css选择器")
$("#nnn").css("属性名","值")
$("#nnn").css({"background":"red","fontsize":"25px"})

遍历元素

$(".memeda").each(function(){

//遍历所有元素
//$(this)------>每一个遍历元素

})

hover事件(鼠标移入移出)

$(".memeda").hover(function(){

 //移入事件
},function(){

//移出事件
})

数组 对象的遍历

$.each(arr,function(index,val){
//index 所有下标
//val 所有值
})

创建节点

$("htmlTag")
追加节点
$(ele).before()/////同胞之前
$(ele).after()////////同胞之后
$(ele).before()////

万物皆对象

var obj={}
所有对象_proto_(隐士原型) //对象都有这个属性!
attr(‘属性名字’) 当属性不存在 获取不到 可以自定义
prop(“属性名字”) 当属性不存在 也可以获取 不存在自定义

Json对象

obj={name:val,..........,action:function(){
}}
obj.属性
obj.方法()
$(parent).append(child)          --------->追加子元素
$(ele).before()                  --------->之前追加
$(ele).after()                   --------->之后追加
$(ele).remove()                  --------->删除本身

JQ效果属性

hide()//隐藏===display:none
show()//展示===display:block
fadeIN()//透明度由0到1
fadeOut()//透明度由1到0
sideDown()//元素收起 过度宽度 从上往下
sideUp()//元素放出 过渡高度 从下往上
sideToggle()//自动缩放

异步通信

AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由杰西·詹姆士·贾瑞特所提出。

GET

 $.get("https://www.apiopen.top/journalismApi",(res)=>{
  //  res = JSON.parse(res); //如果接受的是json字符串将后端返回的json字符串变成json对象
    console.log(res);
    })

POST

 $.post("https://www.apiopen.top/journalismApi",(res)=>{
  //  res = JSON.parse(res); //如果接受的是json字符串将后端返回的json字符串变成json对象
    console.log(res);
    })

JSONP跨域问题

$.getJSON("https://douban.uieee.com/v2/movie/top250?callback=?",{},(res)=>{
     console.log(res);
     })

EX6新语法(可能需要JQ3.X版本)

$.ajax({
            url:"https://www.apiopen.top/journalismApi",
            type:"get",
            dataType:"json",
            data:'',
    }).done((res)=>{
        console.log(res)
    }).fail((res)=>{
        console.log(res)
    })

promise ES6语法封装通用ajax

function getData(url,ops={},type="get"){//默认get
    //  es6 promise语法  封装通用异步
    var promiseObj = new Promise(function(data,reject){
            $.ajax({
                    type,
                    url,
                    data:ops,
                    async:true,
                    dataType:"json",
                    success:(res)=>{
                    data(res);
                    },
                    error:function(res){
                        reject(res);
                    }
                });
    });
       return promiseObj;
}

调用方法

var obj = getData("https://www.apiopen.top/journalismApi");
                //需要注意的是上面接口未传参数,若传参数只需要在后面加 ?参数即可
               obj.then((res)=>{
                     console.log(res);
                     })

var obj2 = getData("https://www.apiopen.top/journalismApi",{});
              //需要注意的是上面接口的花括号是用来传参的
               obj2.then((res)=>{
                     console.log(res);
               })
//post               
var obj3 = getData("https://www.apiopen.top/journalismApi",{},type="post");
               obj3.then((res)=>{
                     console.log(res);
               })

本地储存与事件对象

两种方式

1.会话型存储。sessionStorage

var storage = window.sessionStorage;//obj
//存值
storage.setItem('memeda','12345600');
//读取
var obj = sessionStorage;
var data = obj.getItem('memeda');

2.永久性存储。localStorage

var storage = window.localStorage;//obj
//存值
storage.setItem('memeda','12345600');
//读取
var obj = localStorage;
var data = obj.getItem('memeda');

方法

obj.removeItem('memeda');//删除某个
obj.clear();//清空

无法设置生命周期,只对本地有效,与服务器无关。

BOM(浏览器对象)

location 
histroy(历史记录)
navgation(浏览器客户端)
screen(屏幕对象)
window.confirm("确定删除?")//返回值为布尔
setTimeout();
reload() //重载
replace() //替换当前页面 覆盖历史记录
histroy.go(1)//前进一页
histroy.go(-1)//后退一页
back() //后退 后退键
forward() //前进
ajax不会生成histroy

navigator(返回浏览器客户端)
navigator.appVersion(返回手机或是电脑操作系统信息)
navigator.userAgent(浏览器内核信息)
if(navigator.userAgent.indexOf('Chrome')>0 && navigator.userAgent.indexOf('Edge')==-1){
    //判断为谷歌浏览器
}else if(navigator.userAgent.indexOf('Chrome')>0 && navigator.userAgent.indexOf('Edge')>0){
    //IE
}else if(navigator.userAgent.indexOf('firefox')>0){
    //火狐
}else if(navigator.userAgent.indexOf('UCborwser')>0){
    //UC
}

screen 对象
高度 height offsetHeight
宽度 width  offsetWidth

事件对象

获取时间对象

var event = window.event;
event.preventDefault();//阻止默认行为 入sumbit a链接等

事件冒泡

当父级和子级都绑定了事件之后,如果子元素的事件被触发,父级也会被触发。(由内向外)

解决办法

第一种 阻止冒泡
var event = window.event();
event.stopPropagation();//非IE
event.cancelBubble()//IE

第二种 事件委托

对于同一种事件,直接把事件委托给最大的父级。(从根本解决冒泡)

$("#memeda").click(()=>{
var event = window.event();//获取事件对象
if(event.target.nodeName.toLowercase()=="li"){
    li被点击的后的操作
}else if(event.target.nodeName.toLowercase()=="a"){
   a被点击的后的操作
}else if(event.target.nodeName.toLowercase()=="div"){
   div被点击的后的操作
}
})

事件捕获

与事件冒泡相反,当父级和子级都绑定了事件之后,如果子元素的事件被触发,父级也会被触发。(由外向内)

案例:数组去重

var arr = [1,2,3,4,5,6,7,8,9,1,2,3,4];
var tmp = [];
for(var i =0 ;i<arr.length;i++ ){
    if(tmp.indexOf(arr[i]==-1)){
        tmp.push(arr[i]);
    }
}

ES6 一句话数组去重

Array//数组原型对象
from 将一个可以迭代的数据对象 转换为数组
set //数据类型{1,2,3,4,5,6,7,8,9} 不允许值重复
var arr = [1,2,3,4,5,6,7,8,9,1,2,3,4];
var newarr = Array.from(new Set(arr));
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,875评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,569评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,475评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,459评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,537评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,563评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,580评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,326评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,773评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,086评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,252评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,921评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,566评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,190评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,435评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,129评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,125评论 2 352

推荐阅读更多精彩内容

  • 一:认识jquery jquery是javascript的类库,具有轻量级,完善的文档,丰富的插件支持,完善的Aj...
    xuguibin阅读 1,708评论 1 7
  • 1.几种基本数据类型?复杂数据类型?值类型和引用数据类型?堆栈数据结构? 基本数据类型:Undefined、Nul...
    极乐君阅读 5,512评论 0 106
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,485评论 1 11
  • 22、JQ的基础语法、核心原理和项目实战 jQ的版本和下载 jQuery版本 1.x:兼容IE6-8,是目前PC端...
    萌妹撒阅读 1,744评论 0 0
  • 背景: 目前有一批汽车信用贷款用户违约数据(客户属性 + 账号属性 + 消费行为 +还款行为),市场部门想根据这些...
    dataheart阅读 3,366评论 2 7