【发布时间】:2018-03-26 02:05:06
【问题描述】:
我想使用 javascript 循环来创建多个 HTML 包装器元素并将 JSON 响应 API 数据插入到某些元素(图像、标题、url 等)中。
这是我需要逐行处理的东西吗?
<a class="scoreboard-video-outer-link" href="">
<div class="scoreboard-video--wrapper">
<div class="scoreboard-video--thumbnail">
<img src="http://via.placeholder.com/350x150">
</div>
<div class="scoreboard-video--info">
<div class="scoreboard-video--title">Pelicans @ Bulls Postgame: E'Twaun Moore 10-8-17</div>
</div>
</div>
</a>
我正在尝试什么:
var link = document.createElement('a');
document.getElementsByTagName("a")[0].setAttribute("class", "scoreboard-video-outer-link");
document.getElementsByTagName("a")[0].setAttribute("url", "google.com");
mainWrapper.appendChild(link);
var videoWrapper= document.createElement('div');
document.getElementsByTagName("div")[0].setAttribute("class", "scoreboard-video-outer-link");
link.appendChild(videoWrapper);
var videoThumbnailWrapper = document.createElement('div');
document.getElementsByTagName("div")[0].setAttribute("class", "scoreboard-video--thumbnail");
videoWrapper.appendChild(videoThumbnailWrapper);
var videoImage = document.createElement('img');
document.getElementsByTagName("img")[0].setAttribute("src", "url-of-image-from-api");
videoThumbnailWrapper.appendChild(videoImage);
然后我基本上对所有嵌套的 HTML 元素重复该过程。
- 创建 A 标记
- 为 A-tag 创建 class 和 href 属性
- 将类名和 url 附加到属性
将 A 标记附加到主包装器
创建 DIV
- 为 DIV 创建类属性
- 将 DIV 附加到新附加的 A 标记
如果您能就我在此解释的最佳方式向我提供指导,我将不胜感激?好像会很乱。
【问题讨论】:
-
到目前为止您尝试了哪些方法,您在上面的哪一部分遇到了问题?
-
我正在做我上面描述的事情。例如: var link = document.createElement('a'); document.getElementsByTagName("a")[0].setAttribute("class", "scoreboard-video-outer-link"); document.getElementsByTagName("a")[0].setAttribute("url", "google.com"); mainWrapper.appendChild(link); 然后我基本上对所有嵌套的 HTML 元素重复这个过程。
-
这样的模板化 HTML 是一个很常见的问题。如此常见,其实有很多 JavaScript 框架都可以做到。我建议你研究像 React、Vue 或 Angular 这样的框架。
-
谢谢西德尼。我会更多地研究这些框架。我以前使用 VUE 创建站点,但从未创建过这样的循环。这最终会出现在 Drupal 页面上,所以我也必须更仔细地探索这段婚姻。
-
@4ndy 请编辑/更新您的问题并包括您尝试过的内容。谢谢。
标签: javascript json api-design