2012-09-20 67 views
0

我的JavaScript的onclick超鏈接沒有博客中運行的JavaScript

<script type='text/javascript'> 
//<![CDATA[ 
function showAnswer() 
{ 
    alert('Answer'); 
    var els = document.getElementsByClassName('answer'); 
if (els.style.display != 'inline') 
    els.style.display = 'inline'; 
} 
} 

    //]]> 
</script> 

如果答案是一個類名頁面上的p標籤,它最初是由下面的代碼隱藏:

.answer { display:none; } 

這是代碼調用showAnswer這是行不通的...

<div class='show_hide_answers'> 
     <a href='#' onclick='showAnswer();'>Show Answer</a> 
</div> 

點擊顯示答案什麼也不做。即使它沒有顯示警報意味着JavaScript沒有運行。請幫我解決這個問題。 有關詳細信息,請參見本頁面(這是這個頁面的代碼)提前

http://www.technodoze.com/2012/09/the-idea-that-light-is-em-wave-was.html

感謝,如果你能幫助我PLZ ...

注:我已經嘗試了所有這些:

<a href='#' onclick='showAnswer()'>Show Answer</a> 

<a href='#' onclick='javascript:showAnswer();'>Show Answer</a> 

<a href='#' onclick='javascript:return showAnswer();'>Show Answer</a> 

沒人在工作。

+0

需要後'加{託槽,如果(els.style.display!=「內聯」) ' – Jalpesh

回答

1

getElementsByClassName返回NodeList而不是單個Node。因此,你需要遍歷所產生的NodeList

var els = document.getElementsByClassName('answer'); 
for (var i = 0; i < els.length; i++) { 
    var el = eles[i]; 
    if (el.style.display != 'inline') { 
    el.style.display = 'inline'; 
    } 
} 
+0

我的問題不是這個。我有相同的代碼之前,你已經提到。我真正的問題是,JavaScript並沒有在**全部**處被拒絕。告訴我在我的JavaScript執行代碼中的錯誤。 –

+0

感謝你,我的問題的解決方案是你們都提到的......這真的是一個偉大的論壇! –

0

如果你調試JavaScript,請使用您的控制檯,它說「未捕獲的SyntaxError:意外的標記}」。在if後面缺少{

getElementsByClassName不返回一個單一的元素,但一組元素(注意getElement_ 小號 _)

+0

感謝你,我的問題的解決方案是你們都提到的......這真是一個偉大的論壇! –

相關問題