将一个div的innerHTML放入另一个div中

时间:2013-07-17 13:18:09

标签: javascript html innerhtml getelementbyid typeerror

我通常不会在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也不起作用。

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

由于

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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