如何从 js 对象完全创建 HTML?

马尔马多克

我正在努力寻找一种使用 javascript 为我的网站创建博客文章的方法。我对 javascript 非常了解,但是除了 .js 之外,我没有使用过很多 DOM 元素document.getElementById()我正在寻求有关如何实现将 JS 对象转换为帖子的方法的支持。这是一个示例对象:

var posts = {     //My object

firstPost: {      //An example post
  index: 1,       //Identifies order of posts: 1 is oldest... >1 newest
  id: "first", //An id for the post
  date: {         //Date will be listed next to name on post
    month: 11,
    day: 2,
    year: 2018
  },
  name: "My Post",              //Name of the post
  text: "Text for the post...", //Actual Post
  image: 'blogImage.png'        //An image for the post
}

现在我想通过如下所示的函数传递它来创建 HTML:

function assemblePost( index, id, month, day, year, text, image) {
   //DOM GOES IN HERE
} 

以下是我手动键入 HTML 时的外观示例:

<div class="card" id="first"> <!-- Card element links to css -->
    <h2>My Post</h2> <!-- Name of the post -->
    <h5>Posted November 2nd, 2018</h5> <!-- Date of the post -->
    <div class="img" style="height:200px;"><img src="/blogImage.png" ></div>
    <p>Text for the post..."</p> <!-- Actual Post -->
</div>

我不完全确定如何解决这个问题,因为:

  1. 类“卡片”链接到 CSS,我不确定如何使用 DOM 实现它。
  2. 我不确定 DOM 是否可以编辑样式,如本例中,图像高度为 200,但在另一个图像中可能不同。
  3. 对于我的许多其他帖子,我可能有多个段落和/或列表。至少,我想要一种方法来创建一个文本字符串。也许对于列表,数组在我的对象中最有用,但是我不确定如何处理多个段落。

我意识到这是很多解释、示例和指南,但我真的很感谢你的帮助!谢谢!

亚历克斯·库德里亚舍夫

只需一步一步来。

var posts = [ //My object (array of posts)

  { //An example post
    index: 1, //Identifies order of posts: 1 is oldest... >1 newest
    id: "first", //An id for the post
    date: { //Date will be listed next to name on post
      month: 11,
      day: 2,
      year: 2018
    },
    name: "My Post", //Name of the post
    text: "Text for the post...", //Actual Post
    image: 'blogImage.png' //An image for the post
  },
  { //An example post
    index: 2, //Identifies order of posts: 1 is oldest... >1 newest
    id: "first", //An id for the post
    date: { //Date will be listed next to name on post
      month: 11,
      day: 2,
      year: 2018
    },
    name: "My another Post", //Name of the post
    text: "Text for another post...", //Actual Post
    image: 'blogImage.png' //An image for the post
  }
];
const container = document.getElementById('div-posts');
posts.forEach(function(post) {
  let div = document.createElement('div');
  div.className = 'card';
  div.id = 'post_' + post.index; //or post.id provided itis unique
  //create more elements instead of ".innerHTML" if you wish
  div.innerHTML = '<h2>' + post.name + '</h2>' +
    '<h5>' + (new Date(post.date.year, post.date.month, post.date.day).toDateString()) + '</h5>' +
    '<div class="img"><img src="/' + post.image + '" ></div>' +
    '<p>' + post.text + '</p>';
  container.appendChild(div);
});
.card {
  border: solid 1px #ccc;
  width: 400px
}

.img img {
  max-width: 100%
}
<div id="div-posts"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从数组创建JS对象

来自分类Dev

从JS中的对象数组创建HTML列表

来自分类Dev

如何完全替换HTML元素上的数据对象

来自分类Dev

如何创建JSON对象Node.js

来自分类Dev

如何创建“点函数”?(js对象?)

来自分类Dev

如何在js中创建对象链

来自分类Dev

如何仅从返回的对象Vue.js中获取HTML

来自分类Dev

如何使用按钮显示html中的js对象

来自分类Dev

如何使用HTML ID调用JS对象(例如datepicker)方法?

来自分类Dev

如何使用Express JS创建简单的HTML服务器

来自分类Dev

如何使用JS创建布尔玛按钮元素而不是HTML <a>

来自分类Dev

节点JS:如何创建窗口?(没有HTML)

来自分类Dev

如何从Node.js中动态创建的HTML生成图像?

来自分类Dev

如何创建运行2个链接的js文件的HTML按钮?

来自分类Dev

JS:如何为新创建的HTML元素分配ID

来自分类Dev

如何使用Fabric JS创建类似结构的HTML表格?

来自分类Dev

如何使用 JS HTML DOM 创建“目标”、“_blank”

来自分类Dev

HTML:如何从 .js 文件自动创建引导卡

来自分类Dev

HTML到JS对象

来自分类Dev

根据对象状态在js / html中动态创建按钮

来自分类Dev

从 JS 让创建 HTML 元素

来自分类Dev

如何过滤 HTML 表格 - JS

来自分类Dev

如何基于用户HTML输入创建文档对象?

来自分类Dev

如何使用html元素的属性动态创建json对象

来自分类Dev

如何在javascript中从HTML表创建对象数组?

来自分类Dev

如何基于用户HTML输入创建文档对象?

来自分类Dev

如何从html输入类型时间创建javascript日期对象?

来自分类Dev

Sails JS:如何根据.query()的结果创建模型对象?

来自分类Dev

如何在Scala.Js中创建“选项对象”?

Related 相关文章

热门标签

归档