2014-01-31 20 views
-4

我想檢查我是否在一個特定的頁面,如果我在該頁面內,並存在一個div來做一些事情。如果用戶是在一個特定的頁面和div存在然後做點什麼

我知道如何檢查,如果一個特定的頁面是否存在:if('http://'+location.hostname+location.pathname+'/stats')

我知道檢查一個特定的div存在:if($(".div").length) {

,但我怎麼可以添加第二,如果第一,如果裏面?

我已經試過,但不工作:

if('http://'+location.hostname+location.pathname+'/stats') { 
    if($(".div").length) { //do something;} 
} 

這可能與jQuery的?

+0

通過'$ .load'此頁面的加載內容(如果它不是在同一個域 - 嘗試JSONP或別的東西) –

+0

你需要解析頁面,你做你的方式正在嘗試在當前頁面中找到「.div」 –

+3

這不是*如何檢查特定頁面是否存在。你可以使用if(「我的偉大頁面是製造」),它會評估爲「真」。如果你的嵌套'if'語句沒有語法的問題,那麼你的外部if語句沒有意義。 – meagar

回答

0

的完整參考你只是測試一個字符串這裏存在(這將始終爲true),而不是當前URL等於你所期望的。

if(location.pathname === "/stats" && $(".div").length) { 
    // Do Something 
} 

您需要使用equals參數與上面的路徑名進行比較。

+0

我已經只是試圖在控制檯中,我得到:'未定義',什麼也沒有發生...... – agis

+0

然後在你的代碼中有一個錯誤的地方。看看這個小提琴的例子 - http://jsfiddle.net/7j5AH/ – CodingIntrigue

+0

哦,是的,這是我的代碼。謝謝 ! – agis

0

你可以使用Ajax調用,並在成功回電話,你可以檢查是否該div元素存在

0

可以使用jQuery.load加載您的網頁並獲取特定元素的內容如下所示:

$("#result").load("ajax/test.html #container"); 

這裏,jQuery將加載test.html頁面並在內部將解析,然後返回具有ID container元素的內容。

你可以看到jQuery Load documentation

0

你會不是能夠實現你想要的東西(除非所有感興趣的頁面都在同一個域中),而沒有任何種類的服務器端支持。由於Same-origin Policy,瀏覽器將阻止您使用AJAX收集生活在另一個域中的內容。

但是,解決方案非常簡單:實現一個服務器端服務,執行該任務並從客戶端應用程序中使用該服務。如果你不能,你可以使用在線服務,如YQL,而不是實現你自己的。請注意0​​不符合您的期望。字符串不會繼承基於其內容的任何功能(1.幾乎爲真)。我可以創建一個字符串,如'the-most-important-string-of-all-times',它不會被JS引擎區別對待。

1.空字符串是虛假的,而所有其他字符串都是真實的。

!!''; //false 
!!'anything'; //true 
相關問題