簡體   English   中英

為什么在Dom對象中為自己分配變量會產生影響

[英]Why does assigning a variable to itself in a Dom Object make a difference

我有一個HTML字符串,在我的例子中名為tinymceToHTML,我遇到的問題是,當我下載這個html字符串時,圖像源或href設置錯誤。

我的圖像源在原始String中看起來像“/ file /:id”,如果我將其轉換為DOM對象並輸出它看起來像“ http:// localhost:3000 / file:id ”的源,這是所需的輸出,因為那時外部文件可以加載這個文件。 所以我提出了這個解決方案。

  var div = document.createElement('div'); div.innerHTML = tinymceToHTML; var images = div.getElementsByTagName('img'); for(var i = 0; i < images.length; i++) { images[i].src = images[i].src; } var a = div.getElementsByTagName('a'); for(var i = 0; i < a.length; i++) { a[i].href = a[i].href; } tinymceToHTML = "<html><head></head><body>" + div.innerHTML + "</body></html>"; 

我的問題是,我不知道為什么將變量賦給自身在這種情況下有所不同:images [i] .src = images [i] .src或a [i] .href = a [i] .href。

如果我讓程序向我顯示帶有警報框的輸出,它會告訴我我想要的URL,但如果沒有這個分配,程序就不會做它應該做的事情。

我希望任何人都可以向我解釋這種效果,以便更改代碼,以便更清楚地說明這一行是必需的。

我還創建了一個小提琴示例,可以更容易地顯示我的意思,注釋掉分配的行,以查看其他結果

https://jsfiddle.net/1vabgubh/5/

根據定義,圖像的完整URL正是imageElement.src返回的內容。 來自MDN

HTMLImageElement.src是一個反映src HTML屬性的DOMString,包含圖像的完整URL,包括基URI。

如果你需要它們在你的最終字符串中出現,那么images[i].src = images[i].src似乎是一種合理而簡潔的方式。 我只想添加評論以幫助理解,例如

images[i].src = images[i].src; // force the src to be the full URI

暫無
暫無

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

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