2017-06-15 96 views
-1
var message = document.getElementById("es_msg_pg"); 
var videos = document.getElementById("x-section-2"); 

if (message.innerHTML.indexOf("Email Address already exists!") { 
    videos.style.display = "block"; 
} else { 
    videos.style.display = "none"; 
} 
} 

這似乎是非常直接的,但它不能在我的網站上工作。 有什麼建議嗎?如果其他Div包含文本,則隱藏Div?

這裏是HTML我試圖檢查它是否包含文本電子郵件地址已存在!

<div class="es_msg" id="es_shortcode_msg"> 
<span id="es_msg_pg"></span> 
</div> 
+0

你有一個語法錯誤和邏輯錯誤。 if(message.innerHTML.indexOf(「Email Address already exists!」)' - >'if(message.innerHTML.indexOf(「Email Address already exists!」)> -1)' –

+0

你錯過了一個右括號在你的'if'中,並且在最後有一個額外的右括號,試着修復它們,看它是否可用 – Osuwariboy

+0

[indexOf總是返回true for document.location](https://stackoverflow.com/questions/ 8929027/indexof-always-returns-true-for-document-location) – Nope

回答

1

indexOf返回一個數字。該數字是字符串在另一個字符串中的位置,從0開始。如果字符串不存在,則返回-1,其值爲true。要比較的返回值是這樣的:

if (message.innerHTML.indexOf("Email Address already exists!") >= 0) { ... } 
+0

非常感謝你Supr,這工作! –

+0

你如何循環? 現在的功能工作,但我需要循環它,所以一旦他們請輸入一個em所有內容都會顯示。現在它保持隱藏狀態,因爲在頁面加載時,電子郵件字段中沒有條目。 –

+0

你並不需要一個循環。您只需在電子郵件字段中的值更改時重新運行代碼。你可以把所有的東西放在'function refreshDiv(){/ *你的代碼在這裏* /}'這樣的函數中,然後每當email字段中的值改變時使用'refreshDiv();'調用該函數。 – Supr

0

您可以使用此

var message = document.getElementById("es_msg_pg"); 
 
var videos = document.getElementById("es_shortcode_msg"); 
 
console.log(message.innerHTML); 
 

 
// returns -1 if message doesnt contain your custom text 
 
if (message.innerHTML.indexOf("Email Address already exists!") == -1) 
 
{ 
 
    videos.style.display = "block"; 
 
} else 
 
{ 
 
    videos.style.display = "none"; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<div class="es_msg" id="es_shortcode_msg"> 
 
<span id="es_msg_pg">Email Address already exists!</span> 
 
</div> 
 
<div>Hello</div>

+0

謝謝哈桑這個工作得很好! –

+0

歡迎您:)請考慮接受真正的答案,以幫助人們理解問題已經解決 – hasan

+0

我希望我可以,這是說我的名聲太低... 你知道如何循環這個,所以一旦一個人放入腳本將通過電子郵件地址播放?現在它只有在手動輸入到控制檯日誌中時纔有效。 –

相關問題