4

我有一些代码可以获取按钮的宽度,但它总是返回最后带有“px”的按钮的宽度。有没有一种简单的方法(不创建删除最后两个字符的函数)在没有“px”部分的情况下获取宽度,但仍然以像素为单位?

jsfiddle 示例

<button name="test" id="mybutton" onclick="alert(this.style.width);" style="width:200px;">Click me</button>

提前致谢

4

6 回答 6

9

嘿,一个简单的答案是在数字上使用 parseInt

<button name="test" id="mybutton" onclick="alert(parseInt(this.style.width,10));" style="width:200px;">Click me</button>

在这里查看小提琴http://jsfiddle.net/XdADS/6/

于 2013-10-16T12:26:41.397 回答
5

最后能不能换一个?

<button name="test" id="mybutton" onclick="alert(this.style.width.replace('px', ''));" style="width:200px;">Click me</button>

请记住,如果您有 em、rem 或百分比等的宽度......这将为您提供 CSS 声明大小,例如 12 表示 12em 而不是实际大小,否则您将需要使用类似这样的东西:

this.offsetWidth
于 2013-10-16T12:28:24.330 回答
3

利用 parseInt()

onclick="alert(parseInt(this.style.width,10));

小提琴示例

于 2013-10-16T12:27:43.353 回答
2

正确代码:

<button name="test" id="mybutton" onclick="alert(this.style.width.replace('px',''));" style="width:200px;">Click me</button>
于 2013-10-16T12:27:51.667 回答
1

如果没有明确声明宽度,那么唯一的选择是使用:

id_of_btn.offsetWidth

根据 w3school,offsetWidth:“返回元素的宽度,包括填充、边框和滚动条”

来源:https ://www.w3schools.com/jsreF/dom_obj_all.asp

于 2017-10-12T21:18:58.387 回答
-3

您可以使用 jQuery 的width()功能来实现这一点。

于 2013-10-16T12:26:39.623 回答