我試圖找到使用JavaScript的元素的最近「定位」父。它適用於除IE7以外的所有瀏覽器。問題是element.currentStyle['position']
返回static
,即使它在樣式表中明確定義爲relative
。IE7是否錯誤地報告了「位置」的計算值?
任何人都可以闡明這一點,並建議一個解決方案?
編輯以糾正即使對於相對定位的元素,IE7也返回static
。
我試圖找到使用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