-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'。这表明从第二次单击开始,getElementById 不起作用,即使我选择了第一次工作的相同标题。

有人可以告诉我我做错了什么吗?

谢谢

4

3 回答 3

0

你有两个div id="slide1"。第二个应该"slide2"没有吧?

于 2013-07-17T13:20:43.263 回答
0

确保 id 在您的 HTML 中是唯一的。我相信它应该是 slide1、slide2 等。此外,id 为“testimonials-slider”的元素在哪里?可能这会解决你的问题!

于 2013-07-17T13:24:32.950 回答
0

这真的很愚蠢。我已将幻灯片 div 放在正在更改的推荐滑块中,因此一旦我替换了 innerHTML,它就会覆盖我的幻灯片 div。我已经将这些移到了 div 之外,现在可以正常工作了。如果有人想使用上面的示例,它也可以正常工作。

于 2013-07-17T14:33:41.070 回答