簡體   English   中英

如何使用純JavaScript用img標簽替換HTML字符串

[英]How to replace a HTML String with img tags using pure javascript

我們有一些內容從后端api進入Ionic 2 App。 問題與解答。 答案是使用summernote創建的,因此我們能夠將原始HTML呈現到應用程序中。 但是為了允許圖像縮放,我們需要替換答案內容中所有出現的img標簽。

<img src="pathofimg" attribute1="att1" ...>

<ion-scroll scrollX="true" scrollY="true">
  <img src="pathofimg" attribute1="att1" ...>
</ion-scroll>

僅使用純javascript

我知道正則表達式是一種很好的方法,但是願意接受建議。

例如,這將每個子元素<span>包裝到包裝器元素<p> 只需用您自己的元素名稱和選擇器替換即可。 如果您的父元素不容易選擇,則可能要使用document.querySelector()

<div>
  <span>0</span>
  <span>1</span>
  <span>2</span>
  <span>3</span>
  <span>4</span>
</div>

<script>
    var commonParentElement = document.getElementsByTagName('div')[0];
    var imgs = commonParentElement.getElementsByTagName('span');

    for (var i=0; i<imgs.length; i++) {
      var wrap = document.createElement('p');
      wrap.setAttribute('style', 'font-weight:bold;');
      wrap.appendChild(imgs[i]);
      commonParentElement.insertBefore(wrap, imgs[i]);
    }
</script>

在這里

當您僅向問題添加javascript標記時,以下是使用“本機” document.getElementsByTagNameelement.replaceChild方法的解決方案:

var images = document.getElementsByTagName('img'),
    len = images.length, img, ion, parent;

while (len--) {
    ion = document.createElement("ion-scroll");
    ion.setAttribute("scrollX", "true");
    ion.setAttribute("scrollY", "true");

    img = images[len];
    parent = img.parentNode;
    ion.innerHTML = img.outerHTML;
    parent.replaceChild(ion, img);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM