2011-06-01 30 views
1

我試圖找到使用JavaScript的元素的最近「定位」父。它適用於除IE7以外的所有瀏覽器。問題是element.currentStyle['position']返回static,即使它在樣式表中明確定義爲relativeIE7是否錯誤地報告了「位置」的計算值?

任何人都可以闡明這一點,並建議一個解決方案?

編輯以糾正即使對於相對定位的元素,IE7也返回static

+0

所有元素有其默認位置,所以基本上你正試圖找到父母的位置值? – wdm 2011-06-02 14:01:53

+0

是的,沒錯。我使用遞歸函數來繼續通過祖先,直到它碰到一個'position'不是'static'的元素。 – mariachimike 2011-06-03 03:34:24

回答

0

嘗試,

element.currentStyle.position //I tried it and worked for me 
+0

你說得對。我可以訪問currentStyle.position屬性,但即使對於相對定位的元素,它也會返回「static」。 – mariachimike 2011-06-02 04:39:24

0

如果你不反對使用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')); 
+0

我想你誤解了我的問題。我可以獲取'position'值,但它報告的是'static'而不是'relative'。 – mariachimike 2011-06-05 06:45:54

+0

@mariachimike我在IE7和IE6中測試過。 jQuery庫可能對原生Javascript有更好的跨瀏覽器支持。 – wdm 2011-06-05 07:56:55