如何将 URL 数组中的图像列表添加到文档中?

2023-12-25

假设我有一个充满图像源 URL 的数组,例如:

var imgs = ['http://lorempizza.com/380/240', 
            'http://dummyimage.com/250/ffffff/000000', 
            'http://lorempixel.com/g/400/200/', 
            'http://lorempixel.com/g/400/200/sports/'];

如何抓取所有这些图像并将它们插入到我的页面的特定位置?说...

<div id="imageContainer"></div>

执行此操作的一种方法是循环图像数组,创建一个img对于每个元素,将元素的 src 设置为数组中的当前图像源,然后将其附加到容器中。这看起来像:

var imgs = ['http://lorempizza.com/380/240', 
            'http://dummyimage.com/250/ffffff/000000', 
            'http://lorempixel.com/g/400/200/', 
            'http://lorempixel.com/g/400/200/sports/'];
var container = document.getElementById('imageContainer');

for (var i = 0, j = imgs.length; i < j; i++) {
    var img = document.createElement('img');
    img.src = imgs[i]; // img[i] refers to the current URL.
    container.appendChild(img);
}

然而,这并不是特别有效:

  • 我们使用了不必要的循环
  • 我们在每次迭代中查询 dom
  • 我们正在向您介绍全球i and j变量
  • 我们没有使用 JavaScript 美妙的数组方法!

相反,让我们使用文档片段 https://developer.mozilla.org/en-US/docs/Web/API/Document/createDocumentFragment和 JavaScript 的forEach https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach数组法。

var imgs = ['http://lorempizza.com/380/240', 
            'http://dummyimage.com/250/ffffff/000000', 
            'http://lorempixel.com/g/400/200/', 
            'http://lorempixel.com/g/400/200/sports/'];
var container = document.getElementById('imageContainer');
var docFrag = document.createDocumentFragment();

imgs.forEach(function(url, index, originalArray) {
    var img = document.createElement('img');
    img.src = url;
    docFrag.appendChild(img);
});


container.appendChild(docFrag);

这样我们就是:

  • 只访问 DOM 一次
  • 不引入全局变量
  • 维护更干净、更容易阅读的代码!

然后,为了确保您的新图像看起来不错,请添加一些 CSS:

#imageContainer img {
    width: 20%;
    height: auto;
}

嘭!这是一个fiddle http://jsfiddle.net/gcjkL5jw/3/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 URL 数组中的图像列表添加到文档中? 的相关文章

  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • Chrome 扩展程序在代码中使用 client_secret

    我正在开发具有自己的 oAuth 授权的 Google Chrome 扩展 当然 我必须使用 client id 和 client secret 作为请求令牌 有什么办法可以向用户隐藏这些数据吗 由于此请求只是 javascript 源代码
  • 网站的主体和元素固定在 980px 宽度上,不会缩小

    我试图在 Rails 应用程序顶部启动前端 仅 HTML CSS 页面 但在使用 320px 视口时遇到问题 有些元素不会按比例缩小 我不明白为什么 我已经完成了检查元素 为各种元素提供了max width 100 and or width
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • 在 HTML5 画布中,如何用我选择的背景遮盖图像?

    我试图用画布来实现这一点 globalCompositeOperation 但没有运气 所以我在这里问 这里有类似的问题 但我没有在其中找到我的案例 我的画布区域中有图层 从下到上的绘制顺序 画布底座填充纯白色 fff 用fillRect
  • DataTables row.add 到特定索引

    我正在替换这样的行项目 var targetRow entity row dataTable targetRow closest table dataTable DataTable dataTable row targetRow remov
  • 页面上使用 HTML Editor Extender 进行回发会导致 IE11 中出现 JavaScript 错误

    我已将 HTML 编辑器扩展程序添加到我正在处理的页面中 现在每当我在页面上发回帖子时 都会收到以下 Javascript 错误 JavaScript 运行时错误 参数无效 之后什么也没有发生 这在 IE10 或更低版本以及我所知道的所有其
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • Three.js 各种大小的粒子

    我是 Three js 的新手 正在尝试找出添加 1000 个粒子的最佳方法 每个粒子都有不同的大小和颜色 每个粒子的纹理是通过绘制画布创建的 通过使用粒子系统 所有粒子都具有相同的颜色和大小 为每个粒子创建一个粒子系统是非常低效的 有没有
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 如何隐藏/禁用 Highcharts.js 中的图例框?

    我想问是否可以使用 HighCharts js 库隐藏图表中的所有图例框 var chart object chart renderTo render to type graph type colors graph colors title
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • HTML 锚点,禁用样式

    我有一些 html 锚链接代码 与文档的其余部分不同 我希望它看起来不是链接 有没有一种简单的方法可以禁用由于将文本包装在锚标记中而引起的样式更改 而不必强行使其相同 即 如果我更改正文字体样式 我不必也更改其他一些 link东西 将颜色设
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • JavaScript 相对路径

    在第一个 html 文件中 我使用了一个变量类别链接 var categoryLinks Career prospects http localhost Landa DirectManagers 511 HelenaChechik Dim0
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接
  • CSS溢出文本显示在几行中,没有断字

    我有一些长文本显示在 div 中 该 div 具有固定的宽度和高度 我希望文本显示在几行上 作为 div 高度 并且句子单词不会中断 一行中的单词前缀和下一行中的继续 此外 我想在末尾添加省略号最后一句话 CSS white space n

随机推荐

  • 实体框架 IsRowVersion() 没有并发检查

    我们有一个表 其中有一列名为Version映射为 SQLrowversion 这样做是因为我们有一个映射到我们数据的外部系统 该系统依赖于每次表更新时都会更改的该列 最初我们希望通过 SQL 来处理此问题 但现在我们发现存在乐观并发异常 虽
  • Android Studio 的 VSCode 键盘快捷键

    有没有办法在 Android Studio 的键盘映射设置下添加 VSCode 作为选项 Under File gt Settings gt Keymap 列出了许多其他选项 但它们都与 VSCode 相似 事实上 JetBrains 已经
  • Alembic 检测到已经存在的表,因此它尝试再次创建它们

    我的动态表模型如下 在数据库中没有测试列 我想用 alembic 更新它 class Animation Base tablename Animation id Column Integer primary key True index T
  • SQLi 并检索特定记录

    环顾四周 看到了很多 MySQL 答案 但没有看到 MySQLi 我正在尝试返回我选择的 1 行 目前我只能返回第一行 我想要实现的是 让我的主数据库通过 ID 链接 当您单击 ID 时 可以在另一页上仔细查看记录
  • Python:列表中的非重复随机值[重复]

    这个问题在这里已经有答案了 我正在尝试用 python 2 7 编写一个程序 该程序必须选择多个随机变量并将其打印出来 但该变量不能与之前打印出的任何变量相同 我一直在浏览谷歌和这个网站 但我还没有找到任何关于字符串的东西 到目前为止我只找
  • 如何在 MVC 中进行 foreach 循环来为项目设置新值。

    我试图在类中循环抛出对象并检查其数据类型 并进行控制 如果数据类型是字符串 那么我希望此项值为空 如果数据类型为 int 则此项的值为 0 依此类推 这是我的伪代码 ProductionOrderItem i new ProductionO
  • 使用ggplot2在地图上绘制条形图

    我必须使用在地图上绘制条形图ggplot2 library ggplot2 q ggplot data mapindia aes long lat group group colour geom polygon fill FF9999 co
  • java:稀疏位向量[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Java 中有哪些著名的稀疏位向量库吗 是否有关于稀疏与稀疏使用它们的有用程度的指南 java uti
  • 用于平面到嵌套/分层的 XSLT,具有级别插值?

    给定这个源 XML 文档 输入 xml p content p p content p p content p p content p p content p p content p p content p p content p p co
  • 在 swift 中实现文档选择器 (iOS)

    我想在我的 iOS 应用程序中选择任何类型的文件 pdf docs xlsx jpeg txt rtf 等 功能 点击时Upload按钮 我希望我的应用程序打开一个目录并选择文件 DocumentsPicker IBAction pickD
  • 使用 python 处理 excel 时出错

    当我的脚本同时更新一个 Excel 时 如果我要手动执行任何其他工作 而另一个 Excel 会发生错误 我正在使用调度 from win32com client import Dispatch excel Dispatch Excel Ap
  • Angular:Nodemailer 显示大量运行时错误

    在我的角度项目中 我想使用节点邮件程序发送邮件 第一个问题是当我尝试导入时 我的意思是在执行 npm i save 之后 当我这样做时会发生很多错误ionic serve 我想重复一件事 写完之后import行 这个大错误日志来了 应用程序
  • System.IO.File.Delete() / System.IO.File.Move() 有时不起作用

    Winforms 程序需要将一些运行时信息保存到 XML 文件中 该文件有时可能有几百千字节大小 在 Beta 测试期间 我们发现一些用户会毫不犹豫地看似随机地终止进程 有时会导致文件写入一半并因此损坏 因此 我们更改了算法以保存到临时文件
  • 语音搜索权限

    Running 谷歌语音搜索 https play google com store apps details id com google android voicesearch在我的 ICS Android 4 0 4 平板电脑上出现奇怪
  • 用于为 Java 应用程序构建交互式 shell 的库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找可以让我创建交互式 shell 的 Java 库 我已经做了一些搜索 但还没有找到很多 我发现的大部分内容都是用于向我的应用程序
  • Docker:使用 --volume 绑定安装的文件权限

    我遵循以下指南 https denibertovic com posts handling permissions with docker volumes https denibertovic com posts handling perm
  • C++ 使用模板对象进行操作

    我有课 class BarBase 和一个派生模板类 它存储一个指向成员函数的指针和一个指向同一类的对象的指针 template
  • Excel/VBA - 如何在字符串中每 N 个字符插入一个字符

    我有一份报告 导出时它在单个单元格中将订单号 始终为 7 位长 显示为单个字符串 例如 订单 1234567 和 9876543 将在单个单元格中显示为 12345679876543 每个单元格没有最大订单数 每个单元格的最大订单数都不同
  • 如何以编程方式更改 Mac OS X 中的背景?

    我将如何以编程方式更改 Mac OS X 中的桌面背景 我想使用 python 但我对任何可能的方式都感兴趣 我可以连接到终端并调用某个命令吗 来自 python 如果你有应用脚本 http appscript sourceforge ne
  • 如何将 URL 数组中的图像列表添加到文档中?

    假设我有一个充满图像源 URL 的数组 例如 var imgs http lorempizza com 380 240 http dummyimage com 250 ffffff 000000 http lorempixel com g