美文网首页
jquery学习

jquery学习

作者: 陌客百里 | 来源:发表于2018-08-01 19:08 被阅读0次

https://www.jquery123.com/category/attributes/ 详细文档
http://hemin.cn/jq/ 使用提示

jquery是对js的高级封装,使得用户对js的操作更简单,更丰富和清晰,jquery的绝大多数api是围绕操作DOM来制定的,因此学习找到dom是我们的第一步操作。

什么是DOM?

DOM是Document Object Model(文档对象模型)的缩写。
DOM的基本组成是节点:
节点本身分为:元素节点,属性节点,文本节点
1.元素节点:每一个标签 element对象
2.属性节点:标签上的属性 attributes
3.文本节点:标签中的内容 innerText

元素:元素包含了以上全部节点的特点

元素与元素之间的关系:

父关系:parentElement,parentNode
子关系:childNodes,children,lastChild,lastElementChild,firstChild,firstElementChild
兄弟关系:nextSibling,nextElementSibling,previousSibling,previousElementSibling

打印DOM对象

let el = document.getElementsByTagName('div');
console.log([el[0]]);

DOM查询

首先是元素的查询:
原生js当中,将查询语法分为很多种,其中包括了:
通过id查找,class查找,标签查找,属性查找,
id查找:$('#id')
class查找:$('.class')
标签查找:$('')
在jquery中还添加类似css中的选择器:

image.png

DOM的筛选

在查找到class或者tag后,将有可能会找到多个元素,直接添加内容,默认会为所有元素添加内容,因此我们可以进行内容的筛选,比较常用的有:
eq

DOM创建

同样使用$符号,就可以创建一段html
$("<div><p>Hello</p></div>")

DOM节点的增删改查

文本/元素节点:

查询

查询元素:.html()
查询文本节点: .text()

修改

增加元素:.html(el)
增加文本节点:.text(text)


属性节点:

查询

attr(name|pro|key,val|fn)
prop(n|p|k,v|f)

删除

removeAttr(name)
removeProp(name)

DOM内容的增删改查

内部插入

append(content|fn)
appendTo(content)
prepend(content|fn)
prependTo(content)

外部插入

after(content|fn)
before(content|fn)
insertAfter(content)
insertBefore(content)

包裹

wrap(html|ele|fn)
unwrap()
wrapAll(html|ele)
wrapInner(html|ele|fn)

替换

replaceWith(content|fn)
replaceAll(selector)

删除

empty()
remove([expr]
detach([expr])

复制

clone([Even[,deepEven]])

事件

 .father {
            width: 500px;
            height: 500px;
            position: relative;
            background: red;
        }

        .son {
            margin: auto;
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            width: 300px;
            height: 300px;
            background: burlywood;
        }

冒泡:点击子元素的事件会触发父元素的事件


image.png

阻止冒泡:

$('.son').on('click', function (event) {
            event.stopPropagation();
            alert(222)
        })

事件代理

通过冒泡机制和判断机制,能够为动态模块添加事件处理

<ul>
    <li>item 1
      <ul>
        <li>sub item 1-a</li>
        <li>sub item 1-b</li>
      </ul>
    </li>
    <li>item 2
      <ul>
        <li>sub item 2-a</li>
        <li>sub item 2-b</li>
      </ul> 
    </li>
  </ul>
  <script>function handler(event) {
    var $target = $(event.target);
    if( $target.is("li") ) {
      $target.children().toggle();
    }
  }
  $("ul").click(handler).find("ul").hide();
  </script>

事件对象

所有事件都有回调对象,event
event可以获取到触发事件的相关属性

ajax

基础用法

$('#save').on('click',function(){
            $.ajax({
                type:'GET',
                url:'http://localhost:8081/test',
                data:$('form:first').serializeArray(),
                success:function(res){
                  console.log(res)
                },error: function () {
                console.log('error')
                }
            })
        })

逻辑不够清晰,改良版

var ajax = $.ajax('data.json')
ajax.done(function () {
        console.log('success 1')
    })
    .fail(function () {
        console.log('error')
    })

最新的方法

var ajax = $.ajax('data.json')
ajax.then(function () {
        console.log('success 1')
    }, function () {
        console.log('error 1')
    })

回调地狱
假设有10个ajax互相依赖,并且每个ajax的执行都依赖上一个ajax怎么办?
使用jquery中的$.Deferred对象

 var task1 = function(){
                var $d = $.Deferred();
                setTimeout(function(){
                    console.log('t1');
                    $d.resolve();
                },1000);
                return $d.promise();
            }

            //2
            var task2 = function(){
                var $d = $.Deferred();
                setTimeout(function(){
                    console.log('t2');
                    $d.resolve();
                },1200);
                return $d.promise();
            }

            //3
            var task3 = function(){
                var $d = $.Deferred();
                setTimeout(function(){
                    console.log('t3');
                    $d.resolve();
                },1200);
                return $d.promise();
            }

            //4
            var task4 = function(){
                var $d = $.Deferred();
                setTimeout(function(){
                    console.log('t4');
                    $d.resolve();
                },1200);
                return $d.promise();
            }
task1().then(function(){
                return task2()
            }).then(function(){
                return task3()
            }).then(function(){
                return task4()
            }).then(function(){
                console.log('ok');
            })Ï

相关文章

  • jQuery

    jQuery学习: 最好的学习方法:查看jQuery的API jQuery下载: jQuery官网:http://...

  • 锋利的jquery学习

    锋利的jquery学习 @(Jquery) [TOC] jquery环境配置 从官网上下载jquery.js文件,...

  • Web前端JQuery入门实战案例

    前端jquery入门到实战 为什么要学习Jquery?因为生活。 案例: 使用jquery案例: jquery 快...

  • 前端基础入门五(掌握jQuery的常用api,实现动态效果)

    jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常...

  • jQuery概述

    jQuery简介 jQuery就是一个封装了很多方法的javaScript库。我们学习jQuery,其实就是学习j...

  • JQuery简单入门

    第一章:jQuery 简介 为什么要学习jQuery? 什么是jQuery? jquery的官网:http://j...

  • 2019-01-08

    我的jQuery学习 jQuery库是一个JavaScript文件 1.在jQuery...

  • 2018-06-12

    从零玩转jQuery-初识jQuery 课前须知: 学习jQuery前必须先掌握JavaScriptjQuery虽...

  • jQuery ajax——参数详解

    详细学习jQuery ajax 用法 环境依赖jQuery (我用的是 jQuery v1.11.2) 通用写法$...

  • jquery学习

    学习 jquery 简介 什么是 jquerye jquery 安装 加载运行函数 jQuery 的入口函数是在 ...

网友评论

      本文标题:jquery学习

      本文链接:https://www.haomeiwen.com/subject/btsjmftx.html