2014-09-05 49 views
0

現在我有一個jQuery腳本,看看.shipping是否有一個帶有.sp-methods類的後代,如果它是真的,它將向下滾動到頁面的底部。jQuery如果一個語句爲真,另一個不是?

當前工作的jQuery

if ($('.shipping .sp-methods').length > 0) { 
     $('.shipping').show(); 
    $('html, body').animate({ 
     scrollTop: $(document).height() - $(window).height() 
    }, 
    1400, 
     "easeOutQuint"); 
} 

雖然我要的是腳本只有當,如果這是真的,並用一個ID#購物推車的元素不包含文本「運輸」運行在它或它的任何後代。只是像這樣的航運,而不是航運作爲一個類或任何東西里面的文字。可以包含這個嗎?

我沒有運氣

破碎的jQuery

if ($('.shipping .sp-methods').length > 0 && ! $("#shopping-cart:contains('shipping')")) { 
    $('.shipping').show(); 
    $('html, body').animate({ 
     scrollTop: $(document).height() - $(window).height() 
    }, 
    1400, 
     "easeOutQuint"); 
} 
+0

由於某種原因,當我這樣做時,無論元素是否在其內部的某處「運輸」,它都會滾動到頁面的底部。 – Xander 2014-09-05 16:44:27

回答

1

嘗試這個你應該讓第二個條件按照你的第一的格局。 因此,請嘗試檢查第二個的長度:

編輯:看起來你也錯過了一個單引號'shipping',更新了插入它的答案。

if ($('.shipping .sp-methods').length > 0 && $("#shopping-cart:contains('shipping')").length <= 0) { 
    $('.shipping').show(); 
    $('html, body').animate({ 
     scrollTop: $(document).height() - $(window).height() 
    }, 
    1400, 
     "easeOutQuint"); 
} 
+0

我意識到if語句的第一行沒有關於'shipping'的結尾引號,但是使用上面的代碼和'fixed(my bad)',它會滾動到底部,即使元素包含文本傳送在某處。 – Xander 2014-09-05 16:46:33

+0

@Xander然後通過在if語句內輸出數組'$(「#shopping-cart:contains('shipping')」)'進行調試。看看爲什麼這種情況不會觸發。 – kingdamian42 2014-09-05 16:50:16

+0

這個解決方案一旦我想出了一些東西......我是個大人物,#購物車中包含'Shipping'而不是'shipping'。 D'哦!抱歉! – Xander 2014-09-05 17:04:42

0

這是因爲$("somethingNonExistent")[](空數組)。你需要檢查它的長度,以便知道你的選擇器搜索是否成功。

相關問題