`

原生js获取宽高与jquery获取宽高的方法的关系

阅读更多
转载自,感谢原作者贡献:[url]http://zhuweiwu.com/?p=86
[/url]2011 年 12 月 31 日


说明:1、因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况。
   2、以下所说的所有方法与属性所返回的值都是不带单位的。
   3、为了方便说明,以下情况采用缩写表示:
    obj -> 在原生JS中表示DOM对象;在JQuery中表示JQuery对象
    Width -> obj.style.width
    OffsetWidth -> obj.offsetWidth
    $width -> obj.width()
    $innerWidth -> obj.innerWidth()
    $outerWidth -> obj.outerWidth()
    padding -> 表示对象的padding-left和padding-right之和
    border -> 表示对象的border-left-width和border-right-width之和

原生JS获取宽度的相关属性有 width和offsetWidth。width的获取方法是obj.style.width,只有当对象是通过内嵌方式设定宽度时才能获得,否则返回的是一个空字符串。offsetWidth获得的值跟JQuery中获得对象的outerWidth一样,offsetWidth是非标准的但却得到很好支持的属性。

JQuery获得宽度的方法有width()、innerWidth()、outerWidth()这三种方法。具体使用方式是:obj.width()、obj.innerWidth()、obj.outerWidth()。width()获得的是对象的内容宽度,innerWidth()获得的是对象的内容宽度与填充宽度的和,outerWidth()获得的是包括边框、填充宽度与内容宽度在内的宽度。

这五种方法之间的关系如下:
width = $width;
offsetWidth = border + padding +width;
$innerWidth = padding + width;
$outerWidth = border + padding +width;

这五种方法对firefox、chrome、opera、safari、ie6、ie7、ie8、ie9都兼容,只是存在着两种问题:1、width在没有设定的情况下,chrome在第一次打开页面时,所获取到的宽度全部都是错误的。第二次打开时,结果就跟firefox一致。2、ie6未设定宽高的情况下,不会出现滚动条。
分享到:
评论

相关推荐

    原生js获取宽高与jquery获取宽高的方法关系对比

    主要介绍了原生js获取宽高与jquery获取宽高的方法关系对比,需要的朋友可以参考下

    jquery.my.js

    用JavaScript原生封装的一个jQuery库,可供大家学习底层封装原理。有addClass 添加类,removeClass 删除类,toggleClass 切换类,each 遍历函数,show() 显示, hide() 隐藏,toggle() 切换, html() 获取或设置html...

    jquery及原生js获取select下拉框选中的值示例

    分别使用javascript原生的方法和jquery方法 代码如下: <select id=”test” name=””> ”1″>text1</option> ”2″>text2</option> </select> 一:javascript原生的方法 1:拿到select对象: var ...

    原生js jquery ajax请求以及jsonp的调用方法

    异步:多条任务并发执行,也就是一个任务的开启,不需要等待其他任务执行结束,效率较高 ajax的语言载体是JavaScript,最大的特点是页面不刷新 1、获取ajax对象 主流浏览器获取方式:火狐、谷歌、safari、opera、IE7...

    原生js实现对Ajax的封装(仿jquery)

    众所周知,jquery在我们日常开发中的使用频率非常高,与js相比,我们省去了冗长的获取元素的代码,不用考虑一些麻烦的兼容问题,更加方便的动画实现,以及更加方便的方法调用让我们觉得jquery真是越用越舒服。...

    js与jquery获取父级元素,子级元素,兄弟元素的实现方法

    先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 原生的JS获取ID为test的元素下的子元素。...

    利用原生JS与jQuery实现数字线性变化的动画

    前言 ...原生JS版 首先获取DOM元素。为了兼容到IE6,兼容性方法如下: var domUtil = { // 获取DOM元素 get: function(query) { var _this = this; if(document.querySelector) { return documen

    超实用的jQuery代码段

    超实用的jQuery代码段精选近350个jQuery代码段,涵盖页面开发中绝大多数要点、技巧与方法,堪称史上最实用的jQuery代码参考书,可以视为网页设计与网站建设人员的好帮手。《超实用的jQuery代码段》的代码跨平台、跨...

    Js与Jq 获取页面元素值的方法和差异对比

    主要介绍了原生js获取浏览器和对象宽高与jquery获取浏览器和对象宽高的方法关系对比,十分实用,需要的朋友可以参考下

    js获取iframe中的window对象的实现方法

    JS原生方法获取iframe的window对象 document.getElementById(“ifr”).contentWindow; 可见 $(‘#ifr’)[0].contentWindow 和 document.getElementById(“ifr”) 是等价的 在看下面一种情况 var ifr1 = document....

    原生javascript实现读写CSS样式的方法详解

    可能大家一说起操作css样式,很多人都会想到jQuery的css方法:$(selector).css(name) ,但是有思考过如何使用原生js来实现类似的功能么? 大家最熟悉的原生js操作样式的方法非DOM中的Style对象莫属了,但是这个方法...

    原生js仿jquery实现对Ajax的封装

    与js相比,jquery为我们省去了冗长的获取元素的代码,不用考虑一些麻烦的兼容问题,更加方便的动画实现,以及更加方便的方法调用让我们觉得jquery真是越用越舒服。但是jquery说到底还是对js的封装,我们不光要用的...

    JS/jQuery判断DOM节点是否存在的简单方法

    JavaScript原生函数没有提供判断DOM节点是否存在方法,我们通常获取DOM节点几乎都是document.getElement..方法,会返回一个object数组合集,我们可以通过object[0],object[1]这样来访问这个合集的每一个对象。既然...

    jquery拖拽排序插件dragsort.js,及其实例

    //原生js用法 let sender = new DragSort("#dragBox", { data: data }); //引入jquery后可如下 let sender1 = $("#dragBox1").dragSort(opts1) /* * 事件: * onitemclick * onitemdragend * onitemdragover ...

    jquery获取及设置outerhtml的方法

    本文实例讲述了jquery获取及设置outerhtml的方法。分享给大家供大家参考。具体分析如下: 在开发过程中,jQuery.html() 是获取当前节点下的html代码,并不包含当前节点本身的代码,然而我们有时候的确需要,可以通过...

    JS获取节点的兄弟,父级,子级元素的方法

    先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素 代码如下:”test”><div></div><div></div...

    原生js实现简单的链式操作

    在jQuery中,一个jq对象能一直连续调用各种方法,因为jQuery把这些方法挂载他自定义的一个对象中,但是使用原生的js获取的DOM对象,只能使用一次addEventLisenter方法添加事件,如果要接着添加事件,还得再调用...

    JavaScript中的 attribute 和 jQuery中的 attr 方法浅析

    attribute 是原生js dom 对象上的一个属性,这个属性有很多子属性,比如 isId(判断属性是否是Id) , name (获取属性名称) , value (获取属性值),attributes 用来获取dom元素 的所有属性集合。 话不多说,上例子...

Global site tag (gtag.js) - Google Analytics