javascript - 为什么 Array.from 返回 [object HTMLParagraphElement] 不是段落中的内容?
问题描述
我试图让 Javascript 根据页面上其他地方的内容(特别是购物车摘要中的项目名称)读取和写入段落。问题是我无法让 Javascript 正确编写它们。
我需要正在编写的段落是“订单包括:产品 1、产品 2 等”。但相反,它返回“订单包括:[object HTMLParagraphElement]、[object HTMLParagraphElement] 等”
<!-- Cart Summary -->
<p class="cartitems" id="Quantity">Product 1</p>
<p class="cartitems" id="Quantity">Product 2</p>
<!-- Paragraph to be written -->
<p id="printItems"></p>
<script>
var prods = document.getElementsByClassName("cartitems");
var items = Array.from(prods);
document.getElementById("printItems") = "Order Includes: " +
items;
</script>
我试过使用
var prods = document.getElementsByClassName("cartitems").innerHTML;
和
document.getElementById("printItems").innerHTML = "Order Includes: " +
items;
但两者都返回未定义。
解决方案
该Document.getElementsByClassName()
方法返回 DOM 元素的集合。当您将该方法返回的HTMLCollectionArray.from()
转换为带有 的数组时,使用回调从元素中获取 innerText:
var prods = document.getElementsByClassName("cartitems");
var items = Array.from(prods, el => el.innerText);
document.getElementById("printItems").innerHTML = "Order Includes: " +
items.join(', ');
<!-- Cart Summary -->
<p class="cartitems" id="Quantity">Product 1</p>
<p class="cartitems" id="Quantity">Product 2</p>
<!-- Paragraph to be written -->
<p id="printItems"></p>
推荐阅读
- javascript - 简单的 SQL 到 PHP 数字增量动画 [Jquery]
- java - Android TCP 套接字不接收数据
- c# - 插值字符串格式问题
- angular - router-outlet 正在附加而不是替换 Angular 6.0.3
- opencv - 关于 RGB 和 CIELAB 之间转换的说明
- javascript - 这个增量重试代码是如何工作的?
- python - 舍入函数不是舍入?
- google-apps-script - 在 Google 表格中,使用脚本从图像中创建可点击的超链接
- apache-kafka - kafka 流 ktable 数据丢失
- c# - 使用 PostgreSQL 在 LINQ C# 上按列获取最后一行分组