<div name="b" id="b">原来的文本</div>
<script type="text/javascript">
var c=b.innerHTML;
c="文本改变了?";
alert(b.innerHTML);//单纯的都过innerHTML无法改变原文本。说明innerHTML是个变量
c=b; //c算是一个引用,而不是b的复制品
c.innerHTML="文本改变了";
alert(b.innerHTML);//只有透过该变量的所有者进行改变,才可能
</script>

解决方案 »

  1.   

    innerHTML是一个属性,
    这个属性可以设置,可以获取
      

  2.   

    这么说下面的代码中,同样的文字要占三份内存?<div name="b1" id="b1"></div><hr>
    <div name="b2" id="b2"></div><script type="text/javascript">
    var txt="原来的文本,(这里省略了许多文字...)的文本,原来的文本,原来的文本,原来的文本,原来的文本,原来的文本,原来的文本,原来的文本.";
    b1.innerHTML=txt;
    b2.innerHTML=txt;
    </script>
      

  3.   

    嗯,是那样的。你的那些文本就成为挂在div下面的一个文本节点。
      

  4.   

    不甘心!
    我写了以下代码来做测试,其结果表明,innerHTML似乎是指针或引用.可以给iend不同的值,同时也可以将
     b1.innerHTML=txt;
     b2.innerHTML=txt;
    取掉一个或全取掉. 在windows的任务管理器中看IE的内存占用量.再说明一点,如果有一张图片在一个网页中出现多次,那这个图片一定占一份内存.<div name="b1" id="b1"></div><hr>
    <div name="b2" id="b2"></div><script type="text/javascript">
    var iend=10000; txt="";
    for(var i=0;i<iend;i++)
    txt=txt+"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789<BR/>"; b1.innerHTML=txt;
     b2.innerHTML=txt;</script>
      

  5.   

    呵呵,很多人都不知道楼主在问什么。
    alert(xxx.innerHTML); 可以输出内容,这里会怀疑到底是指针还是变量复制。 换了是我是语言设计人员,我肯定会用指针,至少不占用内存的堆只占用内存的栈去引用同一个堆。
    xxx.innerHTML = "HTML TEXT"; 这里会覆盖原来的内容,貌似像指针,但是还不敢肯定。
    如果 innerHTML 是指针的话,那么肯定可以引用其它对象,但是必须是一个文档节点对象才有innerHTML方法或者叫属性,那么说不清楚到底是啥。innerHTML 如果重写 文档时,里面包含对象的话,如果对象可以继续用,那么算是指针,但是可惜对象不能用。那么我认为 innerHTML 应该不是指针。上面的话,没整理,想到哪里打字到哪里。 楼主没必要为了指针函数 函数指针去痛苦。  不过楼主是非常适合搞技术的人才,呵呵。
      

  6.   

    HTML或XML文档对象里面除节点属性其他皆节点,那么innerHTML返回的数据包含了标签节点文本节点还有各节点的属性,全部是文本。指针通常指向一个对象,而这里有很多对象,而对象变更后JavaScript不能引用变更的新节点对象,那么应该是一个临时副本。不是指针。
      

  7.   

    我通常都是创建节点对象,便于在动态创建的对象上做事件捆绑,除了给容器类标签赋文本值用到innerHTML或innerText,基本我不用他。楼主是不是强语言转过来搞动态语言的?