2016-05-30 16 views
0

CSSとJavaScriptを使用してページ内にイメージサムネイル用のタブがあります。私のページを読み込んだとき、それはタブのみを表示したが、相対タブのコンテンツは表示しなかった。コードを探して助けてください。ウェブページでタブが表示される

Javascriptを:私は基本的にあなたのコード内の2つのタイプミスを見た

<script> 
    function openCity(evt, cityName) { 
     var i, tabcontent, tablinks; 
     tabcontent = document.getElementsByClassName("tabcontent"); 
     for (i = 0; i < tabcontent.length; i++) { 
      tabcontent[i].style.display = "none"; 
     } 

     tablinks = document.getElementsByClassName("tablinks"); 
     for (i = 0; i < tabcontent.length; i++) { 
      tablinks[i].className = tablinks[i].className.replace(" active", ""); 
     } 

     document.getElementById(cityName).style.display = "block"; 
     evt.currentTarget.className += " active"; 
    } 
</script> 
+0

あなたが達成しようとしていることは明確ではありませんが、 の代わりに と言うことができます。tablinks [i] .className = tablinks [i] .className.replace( "active"、 ""); のようにすることができます tablinks [i] .classList.remove( "active"); – brk

+0

これは間違いなく追加の説明が必要です。上で参照された関数は決して呼び出されないので、接続がどこにあるかを知ることは困難です。コードのサンプルを追加することはできますか? –

答えて

0

...

それは本当にですを食べるか、またはあなただけの入力ミスやEVTすべきですか?

function openCity(eat, cityName) { 

と基本的には、この時点では未使用であることtablinks変数を引き起こし、これが

tablinks = document.getElementsByClassName("tablinks"); 
    for (i = 0; i < tabcontent.length; i++) { 

は、だから私はそれを修正し、あなたは、このコードLGTMとして、もう一度試みることができるあなたのコードを壊すことができ

<script> 
    function openCity(evt, cityName) { 
     var i, tabcontent, tablinks; 

     tabcontent = document.getElementsByClassName("tabcontent"); 
     for (i = 0; i < tabcontent.length; i++) { 
      tabcontent[i].style.display = "none"; 
     } 

     tablinks = document.getElementsByClassName("tablinks"); 
     for (i = 0; i < tablinks.length; i++) { 
      tablinks[i].className = tablinks[i].className.replace("active", ""); 
     } 

     document.getElementById(cityName).style.display = "block"; 
     evt.currentTarget.className += " active"; 
    } 
</script> 

の場合、+ IE8をサポートする必要がない場合は、マップ方式でこれを置き換えることができます。http://caniuse.com/#feat=es5

関連する問題