黑马程序员技术交流社区

标题: js document 的replace方法 [打印本页]

作者: 杨杨    时间: 2013-3-8 15:53
标题: js document 的replace方法
本帖最后由 杨杨 于 2013-3-11 08:26 编辑
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3.   <head>
  4.     <title>form.html</title>
  5.         
  6.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  7.     <meta http-equiv="description" content="this is my page">
  8.     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  9.   </head>
  10.   
  11.   <body>
  12.             
  13.            <form name="form1" action="test.html" method="post" >
  14.                        <input type="text" name="tname" value="国庆六十周年_1"  id="tid_1"  >

  15.                   <input type="text" name="tname" value="国庆六十周年_2"  id="tid_2"  >

  16.                   <input type="text" name="tname" value="国庆六十周年_3"  id="tid_3"  >

  17.                   <input type="button" name="ok" value="保存1"/>
  18.              </form>
  19.            
  20.           您喜欢的城市:

  21.            <ul>
  22.                     <li id="bj" value="beijing">北京</li>
  23.                  <li id="sh" value="shanghai">上海</li>
  24.                  <li id="cq" value="chongqing"> 重庆</li>
  25.            </ul>
  26.          
  27.           您喜欢的游戏:

  28.            <ul>
  29.                     <li id="fk" value="fangkong">反恐<p>xxx</p></li>
  30.                  <li id="ms" value="moshou">魔兽</li>
  31.                  <li id="cq" value="chuanqi">传奇</li>
  32.            </ul>   
  33.   </body>
  34.   
  35.   <script language="JavaScript">
  36. //     //获取bj节点
  37. //          var  bjElement=document.getElementById("bj");
  38. //         //获取fk节点
  39. //         var fkElement=document.getElementById("fk");
  40. //         //获取北京节点父节点
  41. //         var bjParentElement=bjElement.parentElement;
  42. //        //当点击北京节点时候替换子节点
  43. //        //替换
  44. //        bjElement.onclick=function(){bjParentElement.replaceChild(fkElement,bjElement);};
  45. //        //var oldElement=bjParentElement.replaceChild(fkElement,bjElement);
  46. //        //var oldElement=bjParentElement.replaceChild(fkElement,bjElement);
  47. //        alert(oldElement.getAttribute("value"));
  48.         
  49.         
  50.         document.getElementById("bj").onclick=function(){
  51.             //获取北京节点
  52.                 var bjElement=document.getElementById("bj");
  53.                   
  54.                 //获取反恐节点
  55.                 var fkElement=document.getElementById("fk");
  56.                
  57.                 //获取北京节点的父节点
  58.             var bjParentElement=bjElement.parentNode;
  59.                
  60.                 //替换
  61.                 var oldElement=bjParentElement.replaceChild(fkElement,bjElement);
  62.                
  63.                 //测试
  64.                 alert(oldElement.getAttribute("value"));
  65.         }  



  66.   </script>
  67.   
  68.   
  69.   
  70.   
  71. </html>
复制代码
上述代码当单击北京时候被替换成反恐
上面注释的代码在ie下测试没问题
但是在火狐下面不行
没注释的在哪里都行
求解释
作者: 罗玉宁    时间: 2013-3-9 03:17
没有问题啊!
我用了注释的代码在火狐下测试没有问题
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>form.html</title>

  5. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
  6. <meta http-equiv="description" content="this is my page">
  7. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  8. </head>

  9. <body>

  10. <form name="form1" action="test.html" method="post" >
  11. <input type="text" name="tname" value="国庆六十周年_1" id="tid_1" >

  12. <input type="text" name="tname" value="国庆六十周年_2" id="tid_2" >

  13. <input type="text" name="tname" value="国庆六十周年_3" id="tid_3" >

  14. <input type="button" name="ok" value="保存1"/>
  15. </form>

  16. 您喜欢的城市:

  17. <ul>
  18. <li id="bj" value="beijing">北京</li>
  19. <li id="sh" value="shanghai">上海</li>
  20. <li id="cq" value="chongqing"> 重庆</li>
  21. </ul>

  22. 您喜欢的游戏:

  23. <ul>
  24. <li id="fk" value="fangkong">反恐<p>xxx</p></li>
  25. <li id="ms" value="moshou">魔兽</li>
  26. <li id="cq" value="chuanqi">传奇</li>
  27. </ul>
  28. </body>

  29. <script language="JavaScript">

  30. // //获取bj节点
  31. var bjElement=document.getElementById("bj");
  32. // //获取fk节点
  33. var fkElement=document.getElementById("fk");
  34. // //获取北京节点父节点
  35. var bjParentElement=bjElement.parentElement;
  36. // //当点击北京节点时候替换子节点
  37. // //替换
  38. bjElement.onclick=function(){bjParentElement.replaceChild(fkElement,bjElement);};

  39. </script>

  40. </html>
复制代码

111.png (39.99 KB, 下载次数: 13)

111.png

作者: 罗玉宁    时间: 2013-3-9 03:27
当然你要达到和ie下一样的效果的话还可以稍微改一下如下:
  1. bjElement.onclick=function(){

  2. var oldElement=bjParentElement.replaceChild(fkElement,bjElement);
  3. alert(oldElement.getAttribute("value"));

  4. };
复制代码

作者: 陈丽莉    时间: 2013-3-9 12:28
如果答案满意,请回复告知,并将帖子分类改成【已解决】。
作者: 杨杨    时间: 2013-3-11 08:27
怪了我测试的就不行呢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2