IE7是否错误地报告了“位置”的计算值?
我试图找到使用JavaScript的元素的最近“定位”父。它适用于除IE7以外的所有浏览器。问题是element.currentStyle['position']
返回static
,即使它在样式表中明确定义为relative
。IE7是否错误地报告了“位置”的计算值?
任何人都可以阐明这一点,并建议一个解决方案?
编辑以纠正即使对于相对定位的元素,IE7也返回static
。
尝试,
element.currentStyle.position //I tried it and worked for me
你说得对。我可以访问currentStyle.position属性,但即使对于相对定位的元素,它也会返回“static”。 – mariachimike 2011-06-02 04:39:24
如果你不反对使用jQuery,这应该工作...
演示:http://jsfiddle.net/wdm954/MRdSx/
var count = 0;
while ($('.x').parents().eq(count).css('position') != 'relative') count++;
alert($('.x').parents().eq(count).attr('id'));
我想你误解了我的问题。我可以获取'position'值,但它报告的是'static'而不是'relative'。 – mariachimike 2011-06-05 06:45:54
@mariachimike我在IE7和IE6中测试过。 jQuery库可能对原生Javascript有更好的跨浏览器支持。 – wdm 2011-06-05 07:56:55
所有元素有其默认位置,所以基本上你正试图找到父母的位置值? – wdm 2011-06-02 14:01:53
是的,没错。我使用递归函数来继续通过祖先,直到它碰到一个'position'不是'static'的元素。 – mariachimike 2011-06-03 03:34:24