首页 > 解决方案 > 如何在javascript中从HTML列表中保存多个文本对象

问题描述

我有 8 个 dataString 对象。“dataString”是我从附件 1 调用的对象,附件 1 是我从控制器转发的列表。

这是我的 HTML 代码:

<% int nilai = 0; %>
<c:forEach items="${attachment1}" var="a">
     <div class="w3-image w3-padding">
          <div id="ini">${a.dataString}</div>
          <%=nilai = nilai + 1%>
</c:forEach>

这是我在 javascript 中的代码:

var blob = [];

blob.push(document.getElementById('ini').innerHTML);

var blobLength = blob.length;
console.log(blob);
console.log(blobLength);

但是,当我在网页上运行并显示时,我在检查元素中看到了这个结果:

网页 上的结果如图所示,java的结果可以完美地显示在网页上。

结果在控制台中检查元素 但在控制台中,您可以看到,从 8 个字符串中,只有 1 个字符串输入到 javascript 的列表中。

如何修复它?这样我就可以将所有 dataString 放在 javascript 的列表中?

标签: javascripthtml

解决方案


id您必须按公共类(在我的示例中)更改重复项ini,因为标识符在同一文档中应该是唯一的:

<% int nilai = 0; %>
<c:forEach items="${attachment1}" var="a">
     <div class="w3-image w3-padding">
          <div class="ini">${a.dataString}</div>
          <%=nilai = nilai + 1%>
</c:forEach>

然后在您的 JS 中使用该类获取所有元素,并使用属性获取内容并将其推送到数组中ini循环遍历它们:foreach.textContentblob

var blob = [];

document.getElementsByClassName('ini').forEach( function(item) { ;
    blob.push(item.textContent);
}

var blobLength = blob.length;

console.log(blob);
console.log(blobLength);

注意:您应该在循环中w3-image使用 div关闭</div>c:forEach


推荐阅读