2013-04-21 45 views
0

我的頁面上有兩個div元素,它們的定位方式使得div與頁面頂部的距離相同,但相隔一定的水平距離。這兩個div元素都使用Javascript/jQuery動態地輸入了一些文本。我想以這樣一種方式訪問​​兩個div中的文本,以便當兩個div包含相同(或匹配)的文本時我可以執行一些操作。有沒有辦法做到這一點的基礎上使用Javascript/jQuery的div的位置?由於某些限制,我無法使用id的明顯解決方案。根據窗口位置訪問div元素的內容

+0

你可以爲每個元素分配唯一的類嗎? – 2013-04-21 17:38:25

+0

每個div的獨特類?我想我可以。我做完之後呢? – Ronophobia 2013-04-21 17:40:18

+0

使用類 – 2013-04-21 17:40:42

回答

1

比方說,你想要的兩個div是在100,100和100,300:

var all_divs = $("div"); 
var div1; 
var div2; 

for (var i=0; i<all_divs.length; i++){ 
    var o = $(all_divs[i]).offset(); 

    if (o.top == 100 && o.left == 100) { 
     div1 = all_divs[i]; 
    } 

    if (o.top == 100 && o.left == 300) { 
     div2 = all_divs[i]; 
    } 
} 

var polling = setInterval(function(){ 
    if ($(div1).text() == $(div2).text()) { 
     perform_some_action(); 
     clearInterval(polling); 
    } 
}, 500); 
+0

這看起來很棒。但爲什麼setInterval? – Ronophobia 2013-04-21 17:52:28

+0

This works great :) – Ronophobia 2013-04-21 18:39:44

+0

你說DIVs的內容是動態更新的,所以我不確定你是否可以在更新時觸發它,或者你只需​​要繼續檢查。如果在更新DIV時檢查內容,則可能不需要'setInterval'。 – 2013-04-21 18:43:51

1

如果你想根據自己的位置使用,以確定您的div .offset()

- Api documentation for .offset()

+0

我也在想這個。但我想知道它是否爲所有瀏覽器提供了相同的結果。 – Ronophobia 2013-04-21 17:50:22

+0

從我能看到的快速搜索...偏移應該適用於大多數瀏覽器。儘管IE通常如此,但可能會出現一些問題。研究一下,那裏有很多解決方案。 – apaul 2013-04-22 02:28:58