jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别

jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别

var a = 元素本身的宽度;

width() = a;

innerWidth() = a+padding;

outerWidth() = a+padding+border;

outerWidth(true) = a+padding+border+margin;

在jQuery中,width()方法用于获得元素宽度;innerWidth()方法用于获得包括内边界(padding)的元素宽度,outerWidth()方法用于获得包括内边界(padding)和边框(border)的元素宽度,如果outerWidth()方法的参数为true则外边界(margin)也会被包括进来,即获得包括外边框(margin)、内边界(padding)和边框(border)的元素宽度。同理,innerHeight方法与outerHeight方法也是用同样的方法计算相应的高度。所以说:对于同一个元素应该是:width()<=innerWidth()<=outerWidth()<=outerWidth(true);

举个例子:
<script type="text/javascript">$(document).ready(function(){  $(".btn1").click(function(){    var obj=$("#p_obj");    alert(obj.width());    alert(obj.innerWidth());    alert(obj.outerWidth());    alert(obj.outerWidth(true));  });});</script><p id="p_obj" style=" width:200px; padding:10px; border:10px solid blue; margin:10px;">This is a paragraph.</p><button class="btn1">输出高度</button>

输出的结果分别是 200px, 220px, 240px, 260px.
时间: 2024-11-05 14:49:31

jquery中innerWidth(),outerWidth(),outerWidth(true)和width()的区别的相关文章

Jquery 中 $(&#39;obj&#39;).attr(&#39;checked&#39;,true)失效的几种解决方案

1.$('obj').prop('checked',true) 2. $(':checkbox').each(function(){ this.checked=true; }) 为什么:attr为失效?因为checked属于为原型对象的属性.而attr在remove原型对象时会出错.原型对象指的是自身自带的,无法移除.prop会忽略这个错误.而attr操作的是普通非原型对象(可移除).js 的dom对象属性是可以随意增加的. Jquery 中 $('obj').attr('checked',tr

JS下offsetLeft,style.left,以及jQuery中的offset().left,css(&quot;left&quot;)的区别。

JS下offsetLeft,style.left,以及jQuery中的offset().left,css("left")的区别. JS下的offsetLeft和style.left,以及jquery的css("left"),对定位的理解相似,如果父元素中有定位元素,都是相对于上一个定位元素(position不为static)定位. 值得一提的是如果没有已经定位的父元素,那么offsetLeft指向的是文档(document)的左边缘,而style.left与css(

jQuery中的$(window)与$(document)几个用法区别

[window对象]    它是一个顶层对象,而不是另一个对象的属性,即表示浏览器中打开的窗口. 1.属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个对象) frame 窗口里的一个框架((FRAME>)(该属性本身也是一个对象) frames array 列举窗口的框架对象的数组,按照这些对象在文档中出现的顺序列出(该属性本身也是一个对象) history 窗口的历史列表(该属性本身也是一个对象) length 窗口内的框架数 locat

[转载]jQuery中wrap、wrapAll和wrapInner用法以及区别

原文地址:jQuery中wrap.wrapAll和wrapInner用法以及区别作者:伊少君 原文: <ul> <li title='苹果'>苹果</li> <li title='橘子'>橘子</li> <li title='菠萝'>菠萝</li> </ul> 1.$("li").wrap("<div></div>"); 每一个选择器都添加 <

jQuery中attr()、prop()、data()用法及区别

.attr(),此方法从jq1.0开始一直存在,官方文档写的作用是读/写DOM的attribute值,其实1.6之前有时候是attribute,有时候又是property..prop(),此方法jq1.6引入,读/写DOM的property..data(),此方法在jq1.2.3引入,作用是把任意的值读取/存储到DOM元素对应的jq对象上. 从性能上对比,.prop() > .data() > .attr(),不同浏览器不同版本.data()和.attr()的性能关系有差异,不过.prop()

jquery中的$(&quot;#id&quot;)与document.getElementById(&quot;id&quot;)的区别

以前一直认为jquery中的$("#id")和document.getElementByIdx_x("id")得到的效果是一样的,今天做特效的时候才发现并不是这么一回事,通过测试得到: 1.alert($("#div"))得到的是[object Object] 2.alert(document.getElementById("div"))得到的是[object HTMLDivElement] 3.alert($("#

关于jquery中的bind()、live()、delegate()的区别分析浅析

近来在研究JS的时候,小码哥又一次看到jquery中常见的几种绑定事件的方法:bind(),live(),delegate().因此,闲来无事,想把他们几个做一下系统的分析,一遍后面的码农们能够一起分享! 先说好,鄙人也算是JS的初学者,很复杂的模块啥的,也是略懂而已,要是有码神看到,可别Ma我哈!! 那好,下面就直接进入主题了~ 首先,分别介绍一下这三个方法: 1.bind()--$(selector).bind(event,data,function);     event 为必需,规定添加

jquery中的each函数和map函数的区别

jquery中的each函数和map函数的用法看起来差不多,但其实还是有一点区别的. 其中一个重要的区别是,each返回的是原来的数组,并不会新创建一个数组.而map方法会返回一个新的数组.如果在没有必要的情况下使用map,则有可能造成内存浪费. 例如: var items = [1,2,3,4];  $.each(items, function() {  alert('this is ' + this);  });  var newItems = $.map(items, function(i

jQuery中的.bind()、.live()和.delegate()之间区别分析

DOM树   首先,可视化一个HMTL文档的DOM树是很有帮助的.一个简单的HTML页面看起来就像是这个样子: 事件冒泡(又称事件传播) 当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何我们已绑定到该元素的单击事件上的函数的执行. 复制代码 代码如下: $('a').bind('click',function(){alert('that tickles!')}) 因此一个单击操作会触发alert函数的执行. click事件接着会向树的根方向传播,广播到父元素,然后接着是每个祖先