<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      js便簽筆記(3)——切記:appendChild()、insertBefore()是移動element節點!

      appendChild()、insertBefore()是移動element節點,看書的時候注意過,也可以做一個簡單的例子測試一下:

      <div id="div1">
          <p id="p1" style="background-color:blue">2014</p>
      </div>
      <hr />
      <div id="div2"></div>
      
      
      var div1 = document.getElementById("div1");
      var div2 = document.getElementById("div2");
      var p1 = document.getElementById("p1");
      
      div2.appendChild(p1);

      以上代碼中,P本來是在div1中,hr的上面,執行了appendChild()之后,就移動到了div2中,hr下面了:

       

      但是今天我在一個實際工作中,卻忽略了這一問題。代碼過程如下:

      1. 用js創建一個5000 * 100的table,保存到一個臨時的div中;

      2. 取出這個table的前100行,加載到頁面上的一個table中;

      代碼如下:

       1 <table id="tableContent" cellpadding="0" cellspacing="0"></table>
       2 
       3 var tableContent = document.getElementById("tableContent");
       4 
       5 var trNum = 5000,
       6       tdNum = 100,
       7       html = "",
       8       tempDiv = document.createElement("div");
       9 
      10 //創建 5000 * 100 的table,并放在臨時div中
      11 html += "<table>";
      12 for (i = 0; i < trNum; i++) {
      13                 html += "<tr>";
      14 
      15                 for (j = 0; j < tdNum; j++) {
      16                     html += "<td>" + i + "|" + j + "</td>";
      17                 }
      18 
      19                 html += "</tr>";
      20 }
      21 html += "</table>";
      22 tempDiv.innerHTML = html;
      23 
      24 //取出前100行,加載到tableContent 上
      25 var trs = tempDiv.firstChild.firstChild.childNodes,
      26       trLen = trs.length;
      27       tempTbody = document.createElement("tbody");
      28 
      29 for (i = 0; i < 100 && i < trLen; i++) {
      30     tempTbody.appendChild(trs[i]);                         //出問題的地方!
      31 }
      32 
      33 tableContent.appendChild(tempTbody);

      問題的原因:

      創建一個table,保存到臨時的div中。然后再取出這個div,找到table的所有行tr,保存到trs中。

      然后循環trs集合,取出前100個,添加到臨時的tbody上,問題就出現在這里。

      for (i = 0; i < 100 && i < trLen; i++) {
           tempTbody.appendChild(trs[i]);                         
      }

      當我每執行一次tempTbody.appendChild(trs[i])的時候,其實都是從trs中移除一個元素,trs的長度會越來越小,因此得不到我想要的結果。

      要解決這一問題,很簡單,只需加上.cloneNode(true)即可。

      for (i = 0; i < 100 && i < trLen; i++) {
           tempTbody.appendChild(trs[i].cloneNode(true));                         
      }

       

      這種雞毛蒜皮的問題,有時候還是需要多注意,多積累。且行且珍惜,且寫且注意啊!

       

      posted @ 2014-04-01 21:32  王福朋  閱讀(6360)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 亚洲AV成人片在线观看| 亚洲综合一区二区三区视频| 亚洲中文久久久久久精品国产| 黄色三级亚洲男人的天堂| 国产亚洲精品久久久久蜜臀| 九九热在线视频中文字幕| 国产精品中文字幕观看| 久久人人97超碰精品| 国内极度色诱视频网站| 国内精品久久久久影视| 麻豆国产成人AV在线播放| 性久久久久久| 久久亚洲精精品中文字幕| 久久精品国产福利一区二区| 国产综合视频一区二区三区| 啦啦啦视频在线日韩精品| 男女xx00xx的视频免费观看| 久久综合色一综合色88欧美| 丹江口市| 午夜免费无码福利视频麻豆| 毛片网站在线观看| 丁香婷婷无码不卡在线| 久久久久久国产精品美女| 美女内射毛片在线看免费人动物| 91午夜福利一区二区三区| 久热这里只有精品12| 久久天天躁狠狠躁夜夜婷| 色噜噜在线视频免费观看| 亚洲精品无码高潮喷水A| 国产成人av一区二区三区不卡| 云浮市| 国产av一区二区久久蜜臀| 性无码一区二区三区在线观看| 欧美国产成人久久精品| 亚洲中文字幕国产精品| 和平县| 体态丰腴的微胖熟女的特征| 邛崃市| 亚洲精品亚洲人成人网| 亚洲欧美日韩久久一区二区| 国产乱码日韩精品一区二区|