亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去除標簽間的空白字符

去除標簽間的空白字符

守著星空守著你 2018-09-03 13:19:31
去除所有子元素的空白標簽,以下代碼為例<div>     <ul>         <li>js</li><!--js-->         <li>html</li><!--html-->         <li>css</li><!--css-->     </ul>     <ul>         <li>js</li><!--js-->         <li>html</li><!--html-->         <li>css</li><!--css-->     </ul></div>找到一種方法  function cleanWhitespace(div) {    for(var i=0;i<div.childNodes.length;i++){         var node = div.childNodes[i];         if(node.nodeType == 3 && !/\S/.test(node.nodeValue)){           node.parentNode.removeChild(node);       }       }     }但是,childNodes是直接元素,那么去掉ul里面的元素怎么做,考慮更深層嵌套的話。有沒有獲取所有節點的方法(children(),getElementByTagName(*)都是不能獲取到空白的文本節點)??或是有更好的方法介紹,大神們~~
查看完整描述

1 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

不是很理解你的題意,你是指深層嵌套的處理么?那遞歸處理可以吧~

function cleanWhitespace(div) {    for(var i=0;i<div.childNodes.length;i++){  
      var node = div.childNodes[i];  
      if(node.nodeType == 3 && !/\S/.test(node.nodeValue)){  
        node.parentNode.removeChild(node);
        i--;//直接刪除節點childNodes有變動
      }else if(node.nodeType == 1){//子元素還是元素就遞歸清理子元素
          cleanWhitespace(node);
      }
    }  
  }


查看完整回答
反對 回復 2018-10-27
  • 1 回答
  • 0 關注
  • 697 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號