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

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

JavaScript 在每個標簽上分割包含 HTML 的字符串

JavaScript 在每個標簽上分割包含 HTML 的字符串

拉莫斯之舞 2023-09-25 15:47:56
所以我有下面的字符串我試圖解析。var text = '<div class="class" style="color:#666;font-size:12px"><strong style="font-size:12px;color:#123;font-weight:bold;">XXXXXXX</strong><br /><span>YYYYYYYYYYYYYYYYYY</span></div><div class="classL" style="color:#456;text-align:right;"><a style="color:#789" href="./abc/?id=1">ZZZZZZZ</a></div>'我認為它需要分開,因為它會像這樣寫:<div class="class" style="color:#666;font-size:12px"><strong style="font-size:12px;color:#123;font-weight:bold;">XXXXXXX</strong><br /><span>YYYYYYYYYYYYYYYYYY</span></div><div class="classL" style="color:#456;text-align:right;"><a style="color:#789" href="./abc/?id=1">ZZZZZZZ</a></div>然后每一行都需要關閉它的標簽,這樣它就完整了:<div class="class" style="color:#666;font-size:12px"></div><strong style="font-size:12px;color:#123;font-weight:bold;">XXXXXXX</strong><br /><span>YYYYYYYYYYYYYYYYYY</span><div class="classL" style="color:#456;text-align:right;"></div><a style="color:#789" href="./abc/?id=1">ZZZZZZZ</a>最后我想使用如下所示的方式獲取每一行的文本:jQuery(text[i]).text();最后要這樣:XXXXXXXYYYYYYYYYYYYYYYYYYZZZZZZZ另外,如果可以保留超鏈接,./abc/?id=1那就太好了。嘗試最初我嘗試執行以下操作,但意識到即使我可以將用于“分割”的部分添加回字符串,我也無法最終使每一行都是語法正確的 HTML,這意味著我無法使用 jQuery select文本功能。// Split Text Onlyvar textArraySplit = name.split(">");var textArray = new Array();for(var j = 0; j < textArraySplit.length-1; j++) {  textArray.push(textArraySplit[j] + ">");}
查看完整描述

2 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

您可以嘗試下面的代碼。


var text = '<div class="class" style="color:#666;font-size:12px"><strong style="font-size:12px;color:#123;font-weight:bold;">XXXXXXX</strong><br /><span>YYYYYYYYYYYYYYYYYY</span></div><div class="classL" style="color:#456;text-align:right;"><a style="color:#789" href="./abc/?id=1">ZZZZZZZ</a></div>'


let parser = new DOMParser()

let _document = parser.parseFromString(text, "text/html")


let _body = _document.getElementsByTagName("body")[0]


let rec = (children) => {

  for (let i=0; i<children.length ; i++) {

    let child = children[i]

    if (child.children.length) {

      rec(child.children)

    }

    else if(child.innerText.length > 0) {

    console.log(child.innerText)

    }

  }

}


rec(_body.children)


查看完整回答
反對 回復 2023-09-25
?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

您最好的選擇可能是創建一個 DOM 元素并提取文本。

查看完整回答
反對 回復 2023-09-25
  • 2 回答
  • 0 關注
  • 105 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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