-1

私は通常、JavaScript で多くのことを行いませんが、小さな JavaScript 関数を作成して、アコーディオンのヘッダーをクリックし、そのヘッダーに一致するテキストをその横のボックスに表示できるようにしました。

function getTestimonial(x) {
    var e = document.getElementById('slide'+x);
    var b = document.getElementById('testimonials-slider');
    var c = e.innerHTML;
    b.innerHTML=c;    
}

HTML:

<div id="slide1" class="slide">
    <p>Test 1</p> 
</div>
<div id="slide2" class="slide">
    <p>Test 2</p> 
</div>

<div id="testimonials-slider"><p>Test 1</p></div>


<div class="accordion-heading">
    <a onclick="getTestimonial(1);" href="#collapseOne">
    Header 1
    </a>
</div>
<div class="accordion-heading">
    <a onclick="getTestimonial(2);" href="#collapseTwo">
    Header 2
    </a>
</div>

最初のクリックでは問題なく動作しますが、その後ヘッダーをクリックするたびに、「TypeError: e is null」というエラーが表示されます。これは、最初に機能した同じヘッダーを選択しても、2 回目のクリックから getElementById が機能していないことを示唆しています。

誰かが私が間違っていることを教えてもらえますか?

ありがとう

4

3 に答える 3

0

本当にばかげていました。変更された証言スライダー内にスライド div を配置していたので、innerHTML を置き換えるとすぐに、スライド div が上書きされました。これらを div の外に移動しましたが、現在は正常に動作しています。上記の例は、誰かが使用したい場合にも問題なく機能します。

于 2013-07-17T14:33:41.070 に答える
0

あなたは2つ持っていdiv id="slide1"ます。2番目のものは"slide2"いいえですか?

于 2013-07-17T13:20:43.263 に答える
0

ID が HTML 内で一意であることを確認してください。私はそれがslide1、slide2などであるべきだと信じています。さらに、IDが「testimonials-slider」の要素はどこにありますか? これであなたの問題が解決するかもしれません!

于 2013-07-17T13:24:32.950 に答える