jQuery与js常用方法对比
来源:互联网 发布:php https post请求 编辑:程序博客网 时间:2024/06/11 21:21
(一)文档就绪
jQuery实现
$(document).ready(function(){ // 开始写 jQuery 代码...});
或简写为
$(function(){ // 开始写 jQuery 代码...});
js实现
window.onload=function(){ // 开始写 js 代码...}
(二)元素选择
//元素选择$("p")document.getElementsByTagName("p")//id选择$("#test")document.getElementById("test")//class选择$(".test")document.getElementsByClassName("test")
(三)点击事件
$("p").click(function(){ // 动作触发后执行的代码!!});document.getElementsByTagName(“p”).onclick=function(){alert('hello world');};或document.getElementsByTagName(“p”).addEventListener('click',function(){alert('hello world')},false);
(四)元素显示和隐藏
jQuery实现
$("p").hide();$("p").show(1000);$("p").toggle();
js实现
document.getElementById("EleId").style.display="none";document.getElementById("EleId").style.display="inline";
(五)元素淡入淡出
jQuery实现
$("#div").fadeIn(3000);$("#div").fadeOut("slow");$("#div1").fadeTo("slow",0.15);
js实现
//这是网上摘得代码大概诠释了基本原理var iBase = { Id: function(name){ return document.getElementById(name); }, //设置元素透明度,透明度值按IE规则计,即0~100 SetOpacity: function(ev, v){ ev.filters ? ev.style.filter = 'alpha(opacity=' + v + ')' : ev.style.opacity = v / 100; } } //淡入效果(含淡入到指定透明度) function fadeIn(elem, speed, opacity){ /* * 参数说明 * elem==>需要淡入的元素 * speed==>淡入速度,正整数(可选) * opacity==>淡入到指定的透明度,0~100(可选) */ speedspeed = speed || 20; opacityopacity = opacity || 100; //显示元素,并将元素值为0透明度(不可见) elem.style.display = 'block'; iBase.SetOpacity(elem, 0); //初始化透明度变化值为0 var val = 0; //循环将透明值以5递增,即淡入效果 (function(){ iBase.SetOpacity(elem, val); val += 5; if (val <= opacity) { setTimeout(arguments.callee, speed) } })(); }
(六)元素滑动
jQuery实现
$("#panel").slideDown();$("#panel").slideUp();$("#panel").slideToggle();
js实现
var header=document.getElementsByTagName('header')[0];header.style.transition='height 500ms';header.style.overflow='hidden';// slideUpheader.style.height='0';// slideDownheader.style.height='70px';
(七)元素动画
jQuery实现
$("div").animate({left:'250px'});div.animate({left:'100px'},"slow");
js实现方法有很多不做累述^_^
(八)获取内容和属性
jQuery实现
$("#test").text()//- 设置或返回所选元素的文本内容$("#test").html()//-设置或返回所选元素的内容(包括 HTML 标记)$("#test").val() //- 设置或返回表单字段的值$("#runoob").attr("href")//-获取属性值
js实现
document.getElementById("EleId").innerTextdocument.getElementById("EleId").innerHTMLdocument.getElementById("EleId").getAttribute(attribute)
(九)添加元素
jQuery实现
$("p").append("追加文本");$("p").prepend("在开头追加文本");$("img").after("在后面添加文本");$("img").before("在前面添加文本");
js实现
document.getElementById("myList").insertBefore(newItem,existingItem);document.getElementById("myList").appendChild(newItem);
(十)删除元素
jQuery实现
$("#div1").remove();//-删除被选元素及其子元素。$("#div1").empty();//-删除被选元素的子元素。
js实现
var el = document.getElementById('div1');el.parentNode.removeChild(el);
(十一)操作Class
jQuery实现
$("h1,h2,p").addClass("blue");$("h1,h2,p").removeClass("blue");$("h1,h2,p").toggleClass("blue");
js实现
function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!this.hasClass(obj, cls)) obj.className += " " + cls; } function removeClass(obj, cls) { if (hasClass(obj, cls)) { var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)'); obj.className = obj.className.replace(reg, ' '); } }
(十二)设置css
jQuery实现
$("p").css({"background-color":"yellow","font-size":"200%"});
js实现
function css(obj, attr, value) { switch (arguments.length) { case 2: if (typeof arguments[1] == "object") { //批量设置属性 for (var i in attr) obj.style[i] = attr[i] } else { // 读取属性值 return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr] } break; case 3: //设置属性 obj.style[attr] = value; break; default: return ""; } }
(十三)遍历
jQuery实现
$("span").parent();//-返回被选元素的直接父元素$("#span").parents();//-返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>)$("div").children();//-返回被选元素的所有直接子元素$("div").find("span");//-返回被选元素的后代元素,一路向下直到最后一个后代$("h2").siblings();//-返回被选元素的所有同胞元素$("h2").next();//-返回被选元素的下一个同胞元素$("h2").nextAll();//-返回被选元素的所有跟随的同胞元素$("h2").nextUntil("h6");//-返回介于两个给定参数之间的所有跟随的同胞元素$("div p").first();//-返回被选元素的首个元素$("div p").last();//-返回被选元素的最后一个元素$("p").eq(1);//-返回被选元素中带有指定索引号的元素$("p").filter(".url");//-不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回$("p").not(".url");//-返回不匹配标准的所有元素
js实现
var s=document.getElementById("test");var chils= s.childNodes; //得到s的全部子节点var par=s.parentNode; //得到s的父节点var ns=s.nextSbiling; //获得s的下一个兄弟节点var ps=s.previousSbiling; //得到s的上一个兄弟节点var fc=s.firstChild; //获得s的第一个子节点var lc=s.lastChile; //获得s的最后一个子节点
(十四)获取尺寸
jQuery里概念
位置
- offset: 获取匹配元素在当前视口的相对偏移
- position: 获取匹配元素相对父元素的偏移
- scrollTop: 获取匹配元素相对滚动条顶部的偏移
- scrollLeft: 获取匹配元素相对滚动条左侧的偏移
尺寸
- height: 取得匹配元素当前计算的高度值
- width: 取得第匹配元素当前计算的宽度值
- innerHeight: 获取第匹配元素内部区域高度(包括补白、不包括边框)
- innerWidth: 获取第匹配元素内部区域宽度(包括补白、不包括边框)
- outerHeight: 获取第匹配元素外部高度(默认包括补白和边框)接受一个布尔值参数, 默认为false, 设置true时, 计算外边距在内
- outerWidth: 获取第匹配元素外部高度(默认包括补白和边框)接受一个布尔值参数, 默认为false, 设置true时, 计算外边距在内
js里概念
window
- window.innerWidth/innerHeight: 浏览器可视窗口宽度, 高度(不含浏览器的边框,但包含滚动条, 调出debug工具会减去其宽高).
- window.outerWidth/outerHeight:整个浏览器宽度, 高度(包含浏览器的边框,因各个浏览器的边框不一样,得到的值也是不一样的).
- window.screenLeft/screenTop:
- ie浏览器的内边缘距离屏幕边缘的距离
- chrome浏览器的外边缘距离屏幕边缘的距离
- window.screenX/screenY:
- ie9/10浏览器的外边缘距离屏幕边缘的距离
- chrome浏览器的外边缘距离屏幕边缘的距离
- 由此可知,chrome的screenLeft和screenX是相等的(其目的是为了兼容ie和firefox,两个属性都兼备了,但更趋向于firefox,chrome的这种做法不止这一处,还有很多,其实这种做法便于开发者移植,但对开发者的开发过程产生了一定的混淆),ie9/10的screenLeft是大于screenX的.
- window.pageXOffset/pageYOffset: 表示浏览器X轴(水平)、Y轴(垂直)滚动条的偏移距离
- 兼容:ie9/10、chrome、firefox
- window.scrollX/scrollY: 表示浏览器X轴(水平)、Y轴(垂直)滚动条的偏移距离。由此可知,在chrome和firefox中window.pageXOffset和window.scrollX是相等的,具体为什么会出现两个相等的属性值,不得而知
- 兼容:chrome、firefox
- 偏移距离是指页面被向上滑动, 向左滑动超出浏览器窗口部分的高度和宽度
screen - screen.width/height: 屏幕的宽度、高度(指的是屏幕的分辨率,单位为像素, 不是浏览器窗口)
- 此处必须是screen.width,而不是screenWidth,与接下来要说的各种宽度有所区别
- screen.availWidth/availHeight: 屏幕的可用宽度、高度(通常与屏幕的宽度、高度一致, 有时要减去任务栏或Mac-OS系统上面导航条宽高)
元素属性
- clientHeight, clientWidth属性:
- 有滚动条时: clientWidth=内边距宽度+内容宽度-元素垂直滚动条宽度
- 无滚动条时: clientWidth=内边距宽度+内容宽度
- 滚动条一般会在边框内出现
- clientLeft, clientTop: clientLeft为左边框宽度,clientTop为上边框宽度
- offsetWidth/offsetHeight属性: 边框宽度+内边距宽度+内容宽度
作者:逆袭的小菜鸟
链接:http://www.jianshu.com/p/527c98f2be7a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
阅读全文
0 0
- jQuery与js常用方法对比
- 常用原生js与jQuery对比总结
- js与jQuery对比
- Jquery与JS常用方法比较
- js与jquery常用方法总结
- js,jquery常用方法
- JS-JS 与 jQuery 操作DOM 对比
- jquery tmpl.js与 juicer渲染对比
- 原生JS与jQuery操作DOM对比
- 原生JS与jQuery操作DOM对比
- 原生JS与jQuery操作DOM对比
- jQuery.cookie.js 常用方法
- 常用jQuery(Js)方法
- JQuery is()与hasClass()方法的对比
- javascript与jquery常用方法
- jQuery避免$符和其他JS冲突的方法对比
- js和jQuery加载DOM的几种方法对比
- jquery+js+html常用方法总结
- 计算机9个基础知识点
- git分支
- 无链之链:R3 Corda带来的新视角
- Virtual Box 报错,无法为虚拟电脑xxxx创建一个新任务
- [bzoj2006][NOI2010]超级钢琴
- jQuery与js常用方法对比
- redis缓冲与数据库
- 软件构造 课堂笔记1
- css实现平角切角和弧形切角效果
- ubuntu16.04 ram Kylin 4.0-2SP1 更新源
- Ubuntu,Windows双系统安装注意要点
- vagrant 快速入门
- java 多线程中的sleep()与wait()方法的对比
- GLSL语言基础