2014-02-13 34 views
-1

我想要使用javascript獲取iframe中所有div的位置(屏幕座標)。沒有jQuery。獲取所有div的位置

我可以得到所有的div像這樣的數組:

var arr = window.frames[0].document.getElementsByTagName("div"); 

然後我試圖做的事:

var arr = window.frames[0].document.getElementsByTagName("div").x; 

但沒有奏效。控制檯日誌未定義。有任何想法嗎?

+0

屏幕座標 – Koiski

回答

1

嘗試這樣的:

var divs = window.frames[0].document.getElementsByTagName("div") 
    i = 0, rects = []; 
for (; i < divs.length; i++) 
    rects.push(divs[i].getBoundingClientRect()); 

現在陣列rects包含了定義相對於視所有的div位置對象。每個元素將如下所示:

{ 
    top: ..., 
    right: ..., 
    bottom: ..., 
    left: ..., 
    width: ..., 
    height: ... 
} 

這些屬性是每個邊框(或寬度或高度)的像素數。

IE6-8雖然沒有報告widthheight屬性,但它很容易計算它們。

1

getElementsByTagName返回一個數組。該數組對象沒有x屬性。

您將需要迭代成員,收集每個值x

此外(正如在下面的評論中指出的),divs沒有x屬性。有關如何管理該問題的詳細信息,請參閱 問題「Retrieve the position (X,Y) of an HTML element」。

+2

每個div也不會有x屬性。 –

+0

有沒有什麼辦法可以做到這一點,而無需使用jQuery .each。使用循環或什麼? – Koiski

+0

這個詞是抵消...和上述答案不是答案。評論 –