最近在用mui写页面,当然了在移动App里引入jq或zepto这些框架,肯定是极不理性的。
原生JS挺简单,为何需要jq?
jq的成功当时是因为ie6、7、8、9、10、chrome、ff这些浏览器不兼容,让开发者崩溃,而且pc上浏览器性能好,跨平台兼容也不影响性能。但jq根本就不是为手机设计的。
手机上只有webkit浏览器(忽略wp,反正mui不支持wp),根本就不需要jq这种封装框架来操作dom。

选择元素

//jq
$('.el');
//js
document.querySelector("div");
div.querySelectorAll('.el');
//mui
mui(".el")[0];

父、兄弟元素

//jq
$('.el').parent();
$('.el').prev();
$('.el').next();
$('.el').last();
$('.el').first();
//js
document.querySelector('.el').parentNode;
document.querySelector('.el').previousElementSibling;
document.querySelector('.el').nextElementSibling;
document.querySelector(".el").lastElementChild;
document.querySelector(".el").children[0];

获取元素文本

//jq
$('.el').html();
$('.el').val();
$('.el').text();
$(el).replaceWith(string);
//js
document.getElementById('el').innerHTML;
document.getElementById('el').value;
document.getElementById('el').textContent
document.getElementById('el').outerHTML = string;

创建元素

//jq
var newEl = $('<div/>');
//js
var newEl = document.createElement('div');

Set/get属性

//jq
$('.el').filter(':first').attr('key', 'value');
$('.el').filter(':first').attr('key');
$('.el').addClass('class');
$('.el').removeClass('class');
$('.el').toggleClass('class');
$(el).css('border-width', '20px');
//js
document.querySelector('.el').setAttribute('key', 'value');
document.querySelector('.el').getAttribute('key');
document.querySelector('.el').classList.add('class');
document.querySelector('.el').classList.remove('class');
document.querySelector('.el').classList.toggle('class');
document.querySelector('.el').style.borderWidth = '20px';

附加

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

克隆

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

移除

//jq
$('.el').remove();
// js
var toRemove = document.querySelector(el);
toRemove.parentNode.removeChild(toRemove);

ajax

//jq
$.get('url', function (data) {});
$.post('url', {data: data}, function (data) {});
//js
// 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});

显示和隐藏

//jq
$(el).show();
$(el).hide();
//js
el.style.display = '';
el.style.display = 'none';

是否包含某个 class

//jq
$(el).hasClass(className);
//js
if (el.classList)el.classList.contains(className);
elsenew RegExp('(^| )' + className + '( |$)', 'gi').test(el.className);     

添加 Class

 //jq$(el).addClass(className);//jsif (el.classList)el.classList.add(className);
elseel.className += ' ' + className;

移除class

//jq
$(el).removeClass(className);
//js
// removeClass, takes two params: element and classname
function removeClass(el, cls) {var reg = new RegExp("(\\s|^)" + cls + "(\\s|$)");el.className = el.className.replace(reg, " ").replace(/(^\s*)|(\s*$)/g,"");
}

如果你只需要支持像IE10+,Chrome,FireFox,Opera和Safari这样较现代的浏览器,那么你可以开始使用HTML5的classList功能,它让增加和删除类变得更简单

el.classList.add(className);
el.classList.remove("foo")
el.classList.contains("foo");
el.classList.toggle("active");

插入 HTML

//jq
$(el).before(htmlString);
$(parent).append(el);
$(el).after(htmlString);
//js
el.insertAdjacentHTML('beforebegin', htmlString);
parent.appendChild(el);
el.insertAdjacentHTML('afterend', htmlString);

获取子节点

//jq
$(el).children();
//js
el.children

Trim

//jq
$.trim(string);
//js
string.trim();

参考:
http://youmightnotneedjquery.com/
http://www.quirksmode.org/dom/core/
http://blog.jobbole.com/52195/
http://ourjs.com/detail/535556a1ed9add0e26000002
http://www.cnblogs.com/lhb25/p/you-might-not-need-jquery.html

那些原生JavaScript相关推荐

  1. 分享10个原生JavaScript技巧

    首先在这里要非常感谢无私分享作品的网友们,这些代码片段主要由网友们平时分享的作品代码里面和经常去逛网站然后查看源文件收集到的.把平时网站上常用的一些实用功能代码片段通通收集起来,方便网友们学习使用,利 ...

  2. animate用法 js原生_用 原生Javascript 创建带动画的固顶导航菜单

    当我们在网页中加入一个导航菜单的时候,需要考虑很多因素.如何确定它的位置?如何定义样式?还需要保证它具有良好的响应性.又或者你想为它添加一些炫酷的动画.这时你可能会对 jQuery 感兴趣,因为它会帮 ...

  3. mysql插入ㄖ_原生JavaScript代码100个实例

    1.原生JavaScript实现字符串长度截取 function cutstr(str, len) { var temp; var icount = 0; var patrn = /[^\x00-\x ...

  4. java文件异步上传_[Java教程]原生javascript实现文件异步上传

    [Java教程]原生javascript实现文件异步上传 0 2017-10-25 19:00:06 效果图: 代码:(demo33.jsp) demo33.jsp名称文件确定 本文网址:http:/ ...

  5. [译] 原生 JavaScript 值得学习吗?答案是肯定的

    原文地址:Is Vanilla JavaScript worth learning? Absolutely. 原文作者:David Kopal 译文出自:掘金翻译计划 本文永久链接:github.co ...

  6. React jsx转换成原生JavaScript的一个例子

    jsx代码: var React = require('react'); var ReactDOM = require('react-dom'); var MyButtonController = r ...

  7. 原生希望原生JavaScript开篇

    本篇文章个人在深圳游玩的时候突然想到的...最近就有想写几篇关于原生希望的文章,所以回家到之后就奋笔疾书的写出来发布了 一直对前端技巧很有兴致,就心生了写一个专栏的动机,然后就申请了原生JavaScr ...

  8. 一些常用且实用的原生 JavaScript函数[转]

    日常开始中常用到的一些原生JavaScript函数,比较实用, 今天特地整理一下,分享给大家,希望对大家有用,会常更新,同时也欢迎大家补充. css及html方面的技巧总结,点此前往: 前端开发中一些 ...

  9. 原生JavaScript轮播图效果实现

    原生JavaScript实现轮播图切换效果的实现过程 本文所用代码仅供个人学习.此部分代码系按原腾讯电脑管家首页的轮播图效果,采用原生JS技术予以实现(原网页采用jQurey等技术). 1. 文件准备 ...

  10. 非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...

    这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 成品显示,可左右切换月份 ...

最新文章

  1. UI设计师必知:link和@import引用css文件方法的区别
  2. MATLAB之基本语法之常用命令
  3. 配送交付时间轻量级预估实践
  4. Bugtags 2016-06-16 更新内容
  5. 1.4编程基础之逻辑表达式与条件分支 12 骑车与走路
  6. Redis缓存穿透、击穿、雪崩来解释个明白
  7. hdu 2476 区间dp
  8. liunx 下的动态地址分配服务DHCP
  9. oracle本地安装注意事项
  10. Ubuntu16.04 安装Teamviewer
  11. thinkphp 助手函数url不生成https_关于ThinkPHP的一些渗透方式
  12. matlab中常用符号
  13. Windows下硬盘存储情况可视化工具--WinDirStat
  14. Excel的去重、分列
  15. NOI 十连测 Zbox loves ants
  16. 波束形成,通过matlab仿真不同参数的波束形成以及旁絆级
  17. 深入探讨:linux中遍历文件夹下的所有文件
  18. 多阶段 matlab,多阶段决策优化最短路径问题的矩阵表示的matlab程序
  19. yolov5车牌识别(2023年毕业设计+python源码)
  20. Palo Alto PAN-OS 10.1 for vSphere KVM -- 基于机器学习的新一代防火墙

热门文章

  1. gbq6的文件能转换成gbq5_PPT文件转换成PDF怎么转?这些方法能实现快速转换
  2. android intent 跳转卡顿_Intent七大属性
  3. android accessibility 模拟返回_Android无障碍宝典
  4. java 拖拽目录_Java 7:如何在Java中实现拖放?
  5. linux抓post命令,Linux 使用curl发起post请求的4个常用方式
  6. 计算机usb共享网络泄密,杜绝USB泄密 MyUSBOnly
  7. java获取excle表格对象_Java使用excel工具类导出对象功能示例
  8. mysql+cur+0_MySQLcurdate()函数的实例详解
  9. android静态代码扫描,android 静态代码扫描
  10. java ajax解析json数据_利用AJAX向后台servlet传JSON数据,后台利用fastjson进行解析