简体   繁体   English

如何从 object 获取名称并将其分配给新创建的元素?

[英]How do I get the name from object and assign it to a new created element?

My question is:我的问题是:

  1. How do I create a new p with every name value from an object?如何使用 object 中的每个名称值创建一个新的 p?
  2. Same for img, reviews etc. img、评论等也一样。

I am struggling because I get all the names but I don't know how to create new paragraphs for every index separately (appendData function) and the other function it is just bad and duplicate code (generateImg function)我很挣扎,因为我得到了所有的名字,但我不知道如何为每个索引分别创建新段落(appendData 函数)和另一个 function 它只是错误和重复的代码(generateImg 函数)

 const data = { "arr": [{ "name": "Box", "reviews": 65, "img": 1 }, { "name": "Drawer", "reviews": 70, "img": 2 }, { "name": "Desk", "reviews": 20, "img": 3 }, { "name": "Chair", "reviews": 76, "img": 4 }, { "name": "Sofa", "reviews": 90, "img": 5 }] } function appendData(data) { for (var i = 0; i < data.arr.length; i++) { var p = document.createElement("p"); var obj = data.arr[i]; p.textContent = obj.name; var elem = document.getElementById('new'); elem.appendChild(p); } } function generateImg(data) { for (i = 0; i < data.arr.length; i++) { let productImage1 = document.getElementById('productImage1').src = "./img/" + data.arr[0].img + ".jpg"; let productImage2 = document.getElementById('productImage2').src = "./img/" + data.arr[1].img + ".jpg"; let productImage3 = document.getElementById('productImage3').src = "./img/" + data.arr[2].img + ".jpg"; let productImage4 = document.getElementById('productImage4').src = "./img/" + data.arr[3].img + ".jpg"; let productImage5 = document.getElementById('productImage5').src = "./img/" + data.arr[4].img + ".jpg"; } }
 <div class="row"> <div class="media"> <img id="productImage1" src="" alt="Box"> </div> </div> <div class="row"> <div class="product-title"></div> </div> <div class="row"> <div class="reviews"></div> </div> <div class="row"> <div class="media"> <img id="productImage2" src="" alt="Drawer"> </div> </div> <div class="row"> <div class="product-title"></div> </div> <div class="row"> <div class="reviews"></div> </div>

You mean like this?你是说像这样? No need for a P when you have a div for each thing当你对每件事都有一个 div 时,就不需要 P

 const data = { "arr": [ { "name": "Box", "reviews": 65, "img": 1 }, { "name": "Drawer", "reviews": 70, "img": 2 }, { "name": "Desk", "reviews": 20, "img": 3 }, { "name": "Chair", "reviews": 76, "img": 4 }, { "name": "Sofa", "reviews": 90, "img": 5 } ] } const html = data.arr.map(item => `<div class="row"> <div class="media"><img src=".img/${item.img}.jpg" /></div> </div> <div class="row"> <div class="product-title">${item.name}</div> </div> <div class="row"> <div class="reviews">${item.reviews}</div> </div>`) document.getElementById("container").innerHTML = html.join("")
 <div id="container"></div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何从 JavaScript 中动态创建的元素中获取文本 - How do I Get Text from Dynamically created element in JavaScript 如何使用Axios PATCH为对象内的元素分配新值? - How do I assign a new value to an element within an object with Axios PATCH? 如何为克隆的HTML元素分配新的唯一ID? - How do I assign a new, unique ID to a cloned HTML element? 如何获取从 function 构造函数创建的所有新对象名称? - How can I get all new objects name created from a function constructor? 如何从动态创建的元素获取元素类名称? - How to get the elements class name from a dynamically created element? 如何获取 datalist 选项的值并将其分配给另一个元素? - How do I get the value of a datalist option and assign it to another element? 如何将 object 中的属性分配给 HTML 元素 - How can I assign properties from an object to a HTML element 当使用angularJS从服务器动态创建每个元素时,如何将表中的每个新元素添加到表顶部? - How do I add each new element in table to top of table when each element is dynamically created from server using angularJS? 如何从对象内部获取属性名称以创建新的属性名称? - How can I get the name of a property from inside an object to create a new property name? 我如何让我的 html 输入元素影响我的 javascript 类对象值(字符名称) - How do i get my html input element to influence my javascript class object value(character name)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM