自知其無知
          不懂,慢慢懂。
          posts - 2,comments - 2,trackbacks - 0

          轉自:http://blog.csdn.net/grueclan/archive/2008/01/23/2062125.aspx

          通過createElement可以創建html元素,并通過appendChild方法可以為html增加元素,同樣可以通過這種方式來動態的控制table的行、列的增刪,在普通的單個頁面以內操作本頁面的元素時一般是沒有問題的,但是如果有這樣一種情況:

                  在一個頁面Parent上通過window.open打開一個新的頁面Child時, 在Child頁面通過js操作Parent頁面上的元素時,如下(這是在Child頁面上的一段js):

           

          // 獲取Parent的句柄
          var parent = parent.window;

          // 獲取Parent中的一個元素的句柄,假設Parent中有一個ID為a的一行兩列的table;
          var  pTable = parent.document.getElementById("a");

          // 我們為該table添加一行數據;
          //
           先創建一個tr
          var tr = document.createElement("tr");
          // 再創建兩個td
          var td1 = document.createElement("td");
          var td1 = document.createElement("td");

          // 將這兩個td添加到剛才創建的行中
          tr.appendChild(td1);
          tr.appendChild(td1);

          // 將這行添加到Parent的table中
          pTable.tBodies[0].appendChild(tr);

           

          這段代碼的運行結果是:
          Firefox中:可以正確的為Parent頁面的table添加一行
          IE中:不能正確的為Parent頁面的table添加一行

          解決辦法:
          將代碼改為如下所示:

           

          // 獲取Parent的句柄
          var parent = parent.window;

          // 獲取Parent中的一個元素的句柄,假設Parent中有一個ID為a的一行兩列的table;
          var  pTable = parent.document.getElementById("a");

          // 我們為該table添加一行數據;
          //
           先創建一個tr
          var tr = parent.document.createElement("tr"); // 改動部分:通過父頁面的句柄來創建元素
          //
           再創建兩個td
          var td1 =  parent.document.createElement("td"); // 改動部分:通過父頁面的句柄來創建元素 
          var td1 =  parent.document.createElement("td"); // 改動部分:通過父頁面的句柄來創建元素 

          // 將這兩個td添加到剛才創建的行中
          tr.appendChild(td1);
          tr.appendChild(td1);

          // 將這行添加到Parent的table中
          pTable.tBodies[0].appendChild(tr);


          原因:IE中,本頁面內創建的元素只能添加在本頁面以內。

          posted on 2008-12-11 13:16 CopyHoo 閱讀(443) 評論(0)  編輯  收藏 所屬分類: JavaScript
          主站蜘蛛池模板: 梅州市| 宁南县| 略阳县| 昌乐县| 太保市| 普宁市| 永康市| 南岸区| 渝中区| 大姚县| 庆阳市| 东城区| 苏尼特右旗| 峨眉山市| 沈阳市| 勃利县| 廊坊市| 镇巴县| 惠东县| 金坛市| 临沂市| 安国市| 周至县| 小金县| 台州市| 大理市| 石棉县| 呼伦贝尔市| 时尚| 南溪县| 大连市| 东明县| 疏勒县| 高邮市| 营口市| 广汉市| 新闻| 乳源| 麻阳| 泰安市| 乡城县|