如何在jQuery/javascript中获取边框宽度

fea*_*net 60 javascript css jquery

如何解析边框宽度

style="border: solid 1px black;"

在jQuery/javascript?

$elem.css('border-width')

不这样做.

注意我需要解析css的宽度,因为元素可能是 display:none

谢谢

编辑我实际上并没有使用内联样式,我只是为了简单而编写它,因为我没有意识到存在任何行为差异.它似乎适用于内联样式,但仍然无法从应用的css类中获得任何值.

djd*_*d87 93

你可以使用parseInt();从解析边框宽度NpxN:

var width = $elem.css('borderWidth'); // 150px
var parsed = parseInt(width);         // 150
Run Code Online (Sandbox Code Playgroud)

我有一个谷歌周围,为了获得边框的宽度,你必须提供一个明确的边框:

var borderWidth = $elem.css("border-left-width");
Run Code Online (Sandbox Code Playgroud)

这是因为每个边框都可以有不同的尺寸,样式和颜色.不幸的是,它似乎并不比这更简单.

  • 重新IE,如果您检测到IE ...将所有内容更改为50pt漫画sans并使用setInterval添加链接到正常浏览器的弹出消息 (30认同)
  • +1!提示:始终包含基数:`parseInt(width,10)`.默认值为十六进制.`parseInt("08")=== 0`和`parseInt("08",10)=== 8` (24认同)
  • 但要注意,IE可以返回"border-whatever-width"的非数字和[CSS规范](http://www.w3.org/TR/CSS2/box.html#propdef-border-top -width)也允许"thin","medium"和"thick"的值.这个[jsfiddle](http://jsfiddle.net/PCE8a/3/)显示IE返回"中间"作为"border-top-width".FF和chrome显示为0px,parseInt("middle",10)返回"NaN",所以一定要在IE中测试.我是_still_寻找如何在每种情况下获得多个像素. (7认同)
  • @elusive默认为十进制.例如,`parseInt(10)=== 10`.你所展示的是,如果输入为"0",那么`parseInt`会将输入解释为八进制. (3认同)
  • @SamWatkins我不知道你怎么只有423名代表.这是我见过的最好的建议! (3认同)

Ben*_*ard 9

jQuery不允许-在引用CSS属性时使用,因此删除hypen并将以下字母大写.

$elem.css('borderWidth');
Run Code Online (Sandbox Code Playgroud)

用jsFiddle编写来演示.

  • @Ben Everard - jQuery确实允许hyphnes - 它只是不允许的短手CSS - 所以左边框宽度没问题,但边框宽度不行. (4认同)

Bry*_*yan 7

在寻求他离开边界并包括关于基数的难以捉摸的评论时,要完成Generic的答案:

<div style="border-style:solid;border-left-width:15px;"></div>
Run Code Online (Sandbox Code Playgroud)

在脚本中:

var width =parseInt($('div').css('borderLeftWidth'),10);
alert(width);
Run Code Online (Sandbox Code Playgroud)


jed*_*ikb 7

var bordersOnBothSides = $("#measureMe").outerWidth() - $("#measureMe").innerWidth() );
Run Code Online (Sandbox Code Playgroud)