繁体   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