我正在编写一个jQuery插件,我需要做的是确定用户指定的元素的宽度.问题是.width()或.css('width')将始终报告精确的像素,即使开发人员已经使用CSS分配了宽度:90%.
有没有办法让jQuery输出px或%中元素的宽度,具体取决于开发人员用CSS给出的内容?
Mat*_*all 84
我想说最好的方法是自己计算:
var width = $('#someElt').width();
var parentWidth = $('#someElt').offsetParent().width();
var percent = 100*width/parentWidth;
Run Code Online (Sandbox Code Playgroud)
tim*_*com 10
这绝对是可能的!
您必须先隐藏()父元素.这将阻止JavaScript计算子元素的像素.
$('.parent').hide();
var width = $('.child').width();
$('.parent').show();
alert(width);
Run Code Online (Sandbox Code Playgroud)
看看我的例子.
小智 9
我认为你可以直接使用样式表('style')对象访问.即便如此,YMMV也是由浏览器提供的.例如elm.style.width.
编辑Peter的评论:: 我不打算'得到%'.根据问题:
我需要能够做的是确定用户指定的元素的宽度... [有没有办法]以px或%输出元素的宽度,具体取决于开发人员用CSS给出的内容?
因此,我提供了一种替代方法来检索"原始"CSS值.这似乎适用于FF3.6.YMMV在其他地方(netadictos的答案可能更便携/通用,我不知道).同样,它并不是要"获得%".