第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

刪除標(biāo)簽名稱但保留標(biāo)簽

刪除標(biāo)簽名稱但保留標(biāo)簽

倚天杖 2022-07-08 19:29:21
您好,我有一個(gè)<strong></strong>嵌套在段落<p></p>中的標(biāo)簽,我正在嘗試刪除<strong>標(biāo)簽但保留文本或值。類似于在 jquery 中展開但在 javascript 中的東西。我在一個(gè)虛擬的 HTML 頁面上嘗試了這段代碼,它工作正常<html><body>    <p>aaa <Strong>bbbbb</Strong></p>    <p>acccaa <Strong>ddddd</Strong></p>    <p>eeee <Strong>ffff</Strong></p>    <script>        var p = document.getElementsByTagName("p");        for(var i=0;i<p.length;i++){            var strongs = p[i].getElementsByTagName("strong");            for(var j=0;j<strongs.length;j++){                p[i].replaceChild(document.createTextNode(strongs[j].innerText),strongs[j]);            }        }    </script></body></html>但是,一旦我在真實(shí)頁面示例上嘗試相同的代碼:https ://www.bustle.com/privacy我收到此錯(cuò)誤:在“節(jié)點(diǎn)”上執(zhí)行“replaceChild”失?。阂鎿Q的節(jié)點(diǎn)不是該節(jié)點(diǎn)的子節(jié)點(diǎn)。關(guān)于如何讓它在示例或任何其他示例上工作的任何想法?
查看完整描述

2 回答

?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

getElementsByTagName()返回一個(gè)活動(dòng)的NodeList。<strong>因此,當(dāng)您替換一個(gè)標(biāo)簽時(shí),以下所有元素的索引都會(huì)向下移動(dòng),并且當(dāng)您在同一段落中有多個(gè)標(biāo)簽時(shí),代碼會(huì)失敗。結(jié)果,它會(huì)跳過一些標(biāo)簽。


解決方案是將 轉(zhuǎn)換NodeList為數(shù)組,以便在循環(huán)時(shí)不會(huì)更改。


實(shí)際頁面中另一個(gè)不在代碼段中的問題是<strong>標(biāo)簽可以嵌套在<p>. 您應(yīng)該使用strongs[j].parentElement它來獲取其直接父級(jí),而不是假設(shè) thep[i]是父級(jí)。


var p = document.getElementsByTagName("p");

for (var i = 0; i < p.length; i++) {

  var strongs = Array.from(p[i].getElementsByTagName("strong"));

  for (var j = 0; j < strongs.length; j++) {

    strongs[j].parentElement.replaceChild(document.createTextNode(strongs[j].innerText), strongs[j]);

  }

}

<html>


<body>

  <p>aaa

    <Strong>bbbbb</Strong> - <strong>12345</strong></p>

  <p>acccaa <span><Strong>ddddd</Strong> x</span></p>

  <p>eeee

    <Strong>ffff</Strong>

  </p>


</body>


</html


您還可以通過使用查詢選擇器來避免嵌套循環(huán)。


var strongs = document.querySelectorAll("p strong");

strongs.forEach(strong => strong.parentElement.replaceChild(document.createTextNode(strong.innerText), strong));

<html>


<body>

  <p>aaa

    <Strong>bbbbb</Strong> - <strong>12345</strong></p>

  <p>acccaa <span><Strong>ddddd</Strong> x</span></p>

  <p>eeee

    <Strong>ffff</Strong>

  </p>


</body>


</html>


查看完整回答
反對(duì) 回復(fù) 2022-07-08
?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

無需遍歷段落即可刪除<strong>. 簡(jiǎn)單地移除所有“強(qiáng)項(xiàng)”就可以了。


function removeStrongs() {

  let strongs = document.querySelectorAll('strong');

  strongs.forEach(strong => {

    strong.insertAdjacentText('afterend', strong.innerText);

    strong.remove();

  });

}

<h4>This is a <strong>Title</strong></h4>

<p>

  Now is the time for all <strong>good</strong> men to come to the <strong>aid</strong> of the party.

</p>

<p>A <strong>quick brown</strong> fox jumps over the lazy dog.</p>


<button onclick="removeStrongs();">Remove Strongs</button>


查看完整回答
反對(duì) 回復(fù) 2022-07-08
  • 2 回答
  • 0 關(guān)注
  • 145 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)