innerHTML完全摆脱了元素吗?
does innerHTML get rid of elements entirely?
编辑:我明白了,谢谢你的时间!
我有一个div, id为container,上面有三个按钮。
当用户点击上面的任何一个按钮时,javascript会根据使用innerHTML按下的按钮替换div的内容。
点击每个按钮一次工作得很好,因为我只是替换div中的元素。但是当我尝试重新单击按钮时,我的控制台打印出'未捕获的TypeError:无法读取属性'innerHTML'的null '
所以我假设innerHTML完全摆脱了元素。是否有一种方法来检索这些元素,以便我可以不断单击按钮,并有各自的元素出现?
如果没有,我正在考虑在我的html文件中为每个按钮设置一个div,然后使用display:none。当用户单击任何按钮时,该按钮的div将被设置为显示:block。
* * * * * * *编辑。我相信我回答了我自己的问题。**
是的,使用innerHTML确实摆脱了div容器内的先前元素。因此,如果您想再次获取这些元素,则无法实现。并且上述错误将在控制台中打印出来。
JsFiddle: http://jsfiddle.net/7Q4vD/
<div id="buttonNav">
<button id="button1">1</button>
<button id="button2">2</button>
<button id="button3">3</button>
</div>
<div id="container">
<p id="para">Data in paragraph</p>
</div>
我尝试了以下操作,它工作完美,检查它:-
<button type="button" id="red"onclick="myFunction(id)"> Red!</button>
<button type="button" id="blue"onclick="myFunction(id)"> Blue!</button>
<button type="button" id="green"onclick="myFunction(id)"> Green!</button>
<div id="container"></div>
<script>
function myFunction(e){
document.getElementById('container').innerHTML = e
}
</script>
好了,现在问题来了
你写:-
<div id="container">
<p id="para">Data in paragraph</p>
</div>
,
var container = document.getElementById('container');
,然后你用字符串设置innerHTML:-
container.innerHTML = data;
那么,假设data = "abc";
你的html变成
<div id="container">
abc
</div>
所以这里没有p标签
因此,当您下次尝试以下操作时:-
document.getElementById('para').innerHTML = data2;
它没有得到任何东西并显示错误。
或者替换
document.getElementById('para').innerHTML = data2;
container.innerHTML = data2;
并从你的html中删除p标签,或者写:-
var para= document.getElementById('para');
,然后在各自的情况下写以下内容:-
para.innerHTML = data2;
para.innerHTML = data;
相关文章:
- 使用元素的值与innerHTML
- innerHTML赢得't改变元素
- 如何避免在更改画布元素时清除它's容器's innerHtml
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 什么是输入元素上的innerHTML
- 如何通过搜索innerHTML的内容来获取HTML元素
- 如何在单击时切换元素的innerHTML
- 获取包装's的innerHTML,包括用户在输入元素中输入的值
- Protractor:在innerhtml的基础上获取元素
- 将一个元素中的innerHTML替换为另一个具有Javascript的innerHTML
- jquery 函数不适用于通过 innerHTML 写入的元素
- 将元素innerHTML替换为其自身的副本会更改文档高度
- 这个jQuery元素innerHTML语句有什么问题
- 使用Javascript更改HTML元素innerHTML部分的CSS属性
- 谷歌Chrome浏览器不更新iframe元素innerHTML动态变化后,在JavaScript
- 元素.innerHTML不提供完整的数据
- Javascript:元素.innerHTML += "…"重置文件输入'
- JQuery -根据元素innerHTML更改属性
- 关于改变元素InnerHTML的基本Javascript查询
- 获得原始的dom元素innerHTML没有javascript处理