2013-11-24 63 views
-1

我試圖隱藏一個帶有cs-iframe類的iframe,如果它是通過創建帶有src URL的if語句來創建if語句如果基於iFrame選擇器的函數有什麼問題?

現在,選擇部分不與if語句一起工作。

var theiFrame = document.getElementByClass("cs-iframe"); 

function hideiFrame() { 
     if (theiFrame.src = "http://www.test.com") { 
     alert("successful selection"); 
     }; 
}; 

謝謝週日堆棧神

+0

[document.getElementsByClassName](https://developer.mozilla.org/en-US/docs/Web/ API/document.getElementsByClassName),或者你可以使用查詢選擇器[Element.querySelector](https://developer.mozilla.org/en-US/docs/Web/API/Element.querySelector)如果你想獲得第一個元素class * cs-iframe * – Givi

+0

您是否在您的JS控制檯中查找錯誤消息? – Quentin

回答

2

功能被命名爲document.getElementByClassName。它不返回單個元素,而是返回一組元素。

然後,在你的條件下,你做theiFrame.src = "http://www.test.com"。使用單個等號,這是一個賦值表達式,就像在代碼的第一行一樣。要檢查兩個值是否相等,應使用=====(瞭解爲什麼有兩個運算符,請參閱this question)。

最後,你可以這樣做完全是在CSS中,通過使用屬性選擇:

iframe[src="http://www.test.com"] { 
    display: none; 
} 
+0

CSS不適用於這種情況,因爲iframe會在加載時向源代碼的末尾添加附加值,以便HTML頁面中的iframe src最初在DOM中不相同。 src =「http://test.com/orginal-url?&additioal-values-added」 我會用*但我不想隱藏這個iFrame的每一幀。 對不起,這是之前沒有澄清 –

+0

無後顧之憂。如果src屬性總是以test.com開頭,那麼你仍然可以這樣做:'iframe [src^=「http://www.test.com」],它將選擇所有的src _starts_的iframe。 [這是MDN文檔](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors)。 –