As in the subject, how can one get the total width of an element, including its border and padding, using jQuery? I've got the jQuery dimensions plugin, and running .width() on my 760px-wide, 10px padding DIV returns 760.

也许我做错了什么,但如果我的元素显示为780 pixels wide,Firebug告诉我上面有10px padding,但打.width()只能得到760,我很难知道怎么做.

谢谢你的建议.

推荐答案

[Update]

最初的答案是在jQuery 1.3之前编写的,当时存在的函数本身不足以计算整个宽度.

现在,正如J-P正确声明的那样,jQuery有函数outerWidthouterHeight,缺省情况下包括borderpadding,如果函数的第一个参数是true,还包括margin


[Original answer]

The width method no longer requires the dimensions plugin, because it has been added to the jQuery Core

您需要做的是获取特定div的padding、margin和border width值,并将它们添加到width方法的结果中

比如:

var theDiv = $("#theDiv");
var totalWidth = theDiv.width();
totalWidth += parseInt(theDiv.css("padding-left"), 10) + parseInt(theDiv.css("padding-right"), 10); //Total Padding Width
totalWidth += parseInt(theDiv.css("margin-left"), 10) + parseInt(theDiv.css("margin-right"), 10); //Total Margin Width
totalWidth += parseInt(theDiv.css("borderLeftWidth"), 10) + parseInt(theDiv.css("borderRightWidth"), 10); //Total Border Width

Split into multiple lines to make it more readable

这样,即使更改了css中的填充或边距值,也总能得到正确的计算值

Jquery相关问答推荐

当父迪瓦是重复元素时,如何将一些子元素包裹在父迪瓦中

使用 shell 脚本判断 json 数组响应是否具有特定用户名和状态的 jq 命令

在 JQuery DataTable 中通过按钮单击传递 ID

如何在 jquery 中包含 !important

如何使用 jQuery 将表格的一行滚动到视图 (element.scrollintoView) 中?

如何制作 AngularJS 指令来停止传播?

扩展 jQuery 插件的最佳方式

数据表警告(表 id = 'example'):无法重新初始化数据表

JQuery手风琴自动高度问题

jQuery绑定到粘贴事件,如何获取粘贴的内容

如何使用 JQuery 发布 JSON 数据?

jquery click 不适用于 ajax 生成的内容

jQuery UI 滑块(以编程方式设置)

如何使div全屏?

字符串化(转换为 JSON)具有循环引用的 JavaScript 对象

使用 jQuery Select 焦点文本在 Safari 和 Chrome 中不起作用

按文本 Select 链接(完全匹配)

如何在按键事件后获取 jQuery .val()?

如何确定滚动高度?

使用中键触发 onclick 事件