You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将用户评论内容插入template克隆的评论容器内?

解决template评论容器无法插入内容的问题

你的问题出在没有在template中预留评论内容的容器,并且JS里是把评论内容直接追加到了#new-comment容器下,而非插入到克隆的评论框内部。按照下面两步修改即可:

1. 给template添加评论内容容器

修改HTML里的template,在.user元素后方添加一个.comment的div,和现有示例评论的结构保持一致:

<template>
  <div class="list">
    <div class="user">
      <div class="user-image"><img src="./images/Animal-Crossing-Tom-Nook-with-Money.jpg"></div>
      <div class="user-name">
        <div class="name">Tom Nook</div>
        <div class="day">1 second ago</div>
      </div>
    </div>
    <!-- 新增容器用于存放评论内容 -->
    <div class="comment"></div>
  </div>
</template>

2. 修改JS代码,将内容插入到克隆的容器内部

克隆template后,先找到克隆节点里的.comment元素,把用户输入的内容插入进去,再将完整的评论框添加到页面:

function postComment() {
  // 克隆评论容器模板
  var temp = document.getElementsByTagName("template")[0];
  var clone = temp.content.cloneNode(true);
  // 获取克隆节点内的评论内容容器
  var commentContainer = clone.querySelector('.comment');

  // 获取用户输入的评论内容
  var userComment = document.getElementById("comment-box").value;
  var text = document.createElement('p');
  text.innerHTML = userComment;
  // 将内容插入到克隆的评论容器内部
  commentContainer.appendChild(text);

  // 将组装好的评论框添加到页面
  var newComment = document.getElementById("new-comment");
  newComment.appendChild(clone);

  // 重置输入框
  document.getElementById("comment-box").value = "";
}

var post = document.getElementById("post");
post.addEventListener("click", function(e) {
  e.preventDefault();
  postComment()
})

问题原因说明

原来的代码逻辑是先把空的克隆评论框加到#new-comment,再把评论内容的p标签也追加到#new-comment,导致内容出现在评论框外部。修改后是先把内容塞进克隆的评论框内部,再将完整的评论框挂载到页面,结构和示例评论完全一致。

内容的提问来源于stack exchange,提问作者croob27

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 09:05:39