如何将一个对象数组中的所有项目从Javascript动态显示为HTML?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将一个对象数组中的所有项目从Javascript动态显示为HTML?相关的知识,希望对你有一定的参考价值。
我是一个javascript新手,在一项作业中,我被指示创建2个 JS
文件,然后用html动态显示数据。一个JS文件 data.js
档有 array of objects
(产品目录),另一个JS文件有加载这些项目的功能,创建HTML元素并在HTML页面上显示项目(目录)。但是我的代码不能工作,不能以所需的格式显示产品,css也不能在函数中加载。我注意到确定某些语法,所以我在loadProducts()中注释了这段代码.我附上了截图,作为该函数如何准确工作的参考。请在这方面帮助我。
// data.js
var catalog = [
code: 100,
name: "Learn JS",
desc: "To make your web paged dynamic",
price: 150,
image: "/images/100Tshirt.jpg"
,
code:101 ,
name: "T Shirt",
desc: "Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs.",
price: 0,
image: "/images/101Tshirt.jpg"
,
code:102 ,
name: "T Shirt",
desc: "Lorem ipsum, or lipsum as it is sometimes known, is dummy text used in laying out print, graphic or web designs.",
price: 0,
image: "/images/102Tshirt.jpg"
//
// name: "Meowsalot",
// species: "Cat",
// favFoods: ["tuna", "catnip", "celery"],
// birthYear: 2012,
// photo: "https://learnwebcode.github.io/json-example/images/cat-1.jpg"
//
];
// codeboutique.js
function chargerArticles()
var articles = document.getElementById("content");
for (var i =0; i <= catalog.length; i++)
var article = document.createElement("div");
article.setAttribute("class", "addClass");
var articleName = document.createElement("h2");
articleName.setAttribute("class", "heading");
articleName.innerText = catalog[i].name;
article.appendChild(articleName);
articles.appendChild(article);
//also hoow to acess style.css to style h2 (dynamic element)
// var nameName= catalog.name.innerText;
// document.body.appendChild(article);
var articleImg = document.createElement("img");
articleImg.setAttribute("class", "imgclass class2 class3");
articleImg.setAttribute("src", catalog[i].image);
// articleImg.setAttribute("src", "/images/100Tshirt.jpg");
// articleImg.setAttribute("src", "100Tshirt.jpg");
// articleImg.innerText = catalog[i].image;
article.appendChild(articleImg);
.addClass
font-size: 44px;
color:grey;
background-color: blue;
border-style: 2px solid yellow;
.heading
color: green;
.border
border: 1px solid grey;
.pad
padding: 15px;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page Title</title>
<script src="js/data.js"></script>
<script src="js/codeboutique.js"></script>
<link rel="stylesheet" type="text/css" href="css/mystyle.css">
</head>
<body onload="chargerArticles()">
<section id="content">
</section>
</body>
</html>
答案
回头看看你截图中的说明。我可以清楚地看到你跳过的指令,那里可以解决你的问题。
尤其是
插入articleName作为article元素的子元素
appendChild()
是正确的函数,但 document.body
是错误的调用对象。仔细想想。
我假设再往下是一个指令,要把文章作为目录表("articles")的子对象插入。
你没有使用赋值指令中推荐的变量名,这可能有点令人困惑。当然,如果你知道自己在做什么,你可以很容易地让代码使用不同的变量名,但既然你说你是个初学者,我建议你现在更仔细地按照指导来做。
以上是关于如何将一个对象数组中的所有项目从Javascript动态显示为HTML?的主要内容,如果未能解决你的问题,请参考以下文章
js 的数组怎么push一个对象. Js数组的操作push,pop,shift,unshift JavaScrip