none
简单脚本innerHTML问题 RRS feed

  • 问题

  • <div id="result" />
        <input type="text" id="txtUserName" />
        <input type="password" id="txtPassword" />
        <input type="button" value="Login" onclick="Login()" />   
    
    document.getElementById("result").innerHTML ="hello world"
    
    请问为什么执行上面的脚本后,id为result下面的所有html元素都不可见了?谢谢。
    2010年10月13日 3:01

答案

全部回复

  • innerHTML 属性设置或返回DIV开始和结束标签之间的 HTML。

    document.getElementById("result").innerHTML ="hello world"表示把DIV标记之间的内容变成了hello world

    重新给DIV标记中的HTML赋值了

     


    http://blog.csdn.net/zx13525079024
    2010年10月13日 3:18
  • 问题是为什么下面的三个html元素消失了?
    2010年10月13日 3:21
  • 因为使用document.getElementById("result").innerHTML,重新给DIV中的内容赋值了
    http://blog.csdn.net/zx13525079024
    2010年10月13日 3:40
  • 因为使用document.getElementById("result").innerHTML,重新给DIV中的内容赋值了
    http://blog.csdn.net/zx13525079024
    开心的意思是,result内部的所有HTML元素被删除了,然后重新给了一个hello world文本标签
    Love Your Neighbor as Yourself
    2010年10月13日 4:38
  • 后面的三个html元素和div的关系是兄弟节点的关系,并非子节点啊。

    那三个html元素又不是存在于div内部。

    2010年10月13日 6:58
  • 你使用规范的DIV标记写法,不规范的标记在浏览器解析时可能会出现一些问题

    innerHTML 自身对不同的浏览器也会存在一些问题

    http://www.planabc.net/2008/06/17/the_problem_with_innerhtml/

      <div id="result"> </div>
      <input type="text" id="txtUserName" />
      <input type="password" id="txtPassword" />
      <input type="button" value="Login" onclick="Login()" />
    

    http://blog.csdn.net/zx13525079024
    2010年10月13日 7:41
  • 感谢您的回复。

    其实<div />不能说它是不符合规范的语法。 我的document type是

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    而<div />是完全合法的xhtml语法。

    我原以为是ie8的问题,后来在chrome中试了一下,也是相同的结果。所以觉得非常奇怪。

    2010年10月13日 7:51
  • 必须是<div></div>的写法。而不能是<div />

    不像img br等标签


    【孟子E章】
    2010年10月13日 9:28
    版主