zoukankan      html  css  js  c++  java
  • 那些原生的javascript APIs

    在前端开发的时候,我们往往会使用javascript 框架,使用框架的好处多多,提供的方便的操作函数,类继承机制,MV*等,让我们能够快速开发,然而我们应该清楚这些框架都是基于浏览器原生api的封装,在使用框架的时候,我们应该明白框架使用了哪些原生的api。

    下面以Jquery为例与 IE 浏览器  Javascript 原生 API 对比一下:

    选择元素

    // jQuery
    var els = $('.el');
    
    // Native
    var els = document.querySelectorAll('.el');
    
    // Shorthand
    var $ = function (el) {
      return document.querySelectorAll(el);
    }
    
    var els = $('.el');

    创建元素

    // jQuery
    var newEl = $('<div/>');
    
    // Native
    var newEl = document.createElement('div');

    事件侦听

    // jQuery
    $('.el').on('event', function() {
    
    });
    
    // Native
    [].forEach.call(document.querySelectorAll('.el'), function (el) {
      el.addEventListener('event', function() {
    
      }, false);
    });

    获取/设置元素属性

    // jQuery
    $('.el').filter(':first').attr('key', 'value');
    $('.el').filter(':first').attr('key');
    
    // Native
    document.querySelector('.el').setAttribute('key', 'value');
    document.querySelector('.el').getAttribute('key');
    移除/添加/切换 样式

    // jQuery
    $('.el').addClass('class');
    $('.el').removeClass('class');
    $('.el').toggleClass('class');
    
    // Native
    document.querySelector('.el').classList.add('class');
    document.querySelector('.el').classList.remove('class');
    document.querySelector('.el').classList.toggle('class');

    往元素里面添加子元素

    // jQuery
    $('.el').append($('<div/>'));
    
    // Native
    document.querySelector('.el').appendChild(document.createElement('div'));

    元素复制

    // jQuery
    var clonedEl = $('.el').clone();
    
    // Native
    var clonedEl = document.querySelector('.el').cloneNode(true);

    元素的移除

    // jQuery
    $('.el').remove();
    
    // Native
    remove('.el');
    
    function remove(el) {
      var toRemove = document.querySelector(el);
    
      toRemove.parentNode.removeChild(toRemove);
    }

    获取父元素

    // jQuery
    $('.el').parent();
    
    // Native
    document.querySelector('.el').parentNode;

    获取上一个/下一个元素

    // jQuery
    $('.el').prev();
    $('.el').next();
    
    // Native
    document.querySelector('.el').previousElementSibling;
    document.querySelector('.el').nextElementSibling;

    XHR 以及Ajax 

    // jQuery
    $.get('url', function (data) {
    
    });
    $.post('url', {data: data}, function (data) {
    
    });
    
    // Native
    
    // get
    var xhr = new XMLHttpRequest();
    
    xhr.open('GET', url);
    xhr.onreadystatechange = function (data) {
    
    }
    xhr.send();
    
    // post
    var xhr = new XMLHttpRequest()
    
    xhr.open('POST', url);
    xhr.onreadystatechange = function (data) {
    
    }
    xhr.send({data: data})




  • 相关阅读:
    百度面试题
    分治法--二分查找、乘方、斐波那契数
    01-11李宁老师学Python视频课程(1):初识Python返回课程
    邮件发送的两种实现方法。
    Docker(一):Docker入门教程
    安装docker及在docker中安装python环境学
    vim编辑器的使用和CentOS有很多不同
    大一编程基础培训]==02-03-04-05课==类型
    大一编程基础培训]==08课==条件判断]==07课==Python的LIST与TUPLE数据类型
    Beautiful Soup 4.2.0 文档¶ BeautifulSoup对象内任何第一个标签入口,使用find()方法。
  • 原文地址:https://www.cnblogs.com/dubaokun/p/3407885.html
Copyright © 2011-2022 走看看