javascript - JavaScript 中的连接

标签 javascript html

由于某种原因,当 keyText 变量应该连接关键字中的每个变量时,它没有显示任何值。

当有人单击按钮时,它会运行 addKeyword 并获取输入的值。

尝试通过 Console.Log 记录 keyText 变量,但根本不起作用。

var keywords = [];
      var keyText = "";

      function addKeyword() {
          var keywordName = document.getElementById("keywordAdd").value
          keywords.push(keywordName);

          keywords.forEach(showKeywords);

          function showKeywords(item, index) {
              var newString = "<span class='keyword' onclick='delKeyword(" + index + ")'>✖ " + item + "</span>";
              keyText.concat(newString);
              document.getElementById("keywords").innerHTML = keyText;
          }

      }

控制台中没有显示错误。预期结果是一个列表,但未显示。

最佳答案

问题是 .concat不会改变字符串,它返回一个新字符串。 你需要做这样的事情:

keyText = keyText.concat(newString);

顺便说一句,您当前的方法效率不高,因为它会在每次迭代时更改元素的内部 HTML。您应该只在生成所有元素的 HTML 后执行一次该操作。这是另一种方法:

const result = keywords.map((item, index) => (`<span class="keyword" onclick="delKeyword(${index})">✖ ${item}</span>`)).join('');
document.getElementById("keywords").innerHTML = result;

关于javascript - JavaScript 中的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57162680/

相关文章:

javascript - 以编程方式单击标记和 map

javascript - 模拟图像另存为

html - 为什么我不能更改我的 HTML 网站的背景图片?

html - 如何使用 bookdown::gitbook 作为输出来证明 Rmd 中的整个文本

javascript - 如何替换node.js REDIS中已弃用的HMSET

javascript - 在另一个事件监听器的函数中使用一个事件监听器是一种不好的做法吗?

javascript - 如何替换 css 类内容?

html - 图像(div 的子级)但在其外部,不激活悬停效果

css - Canvas 底部有空白,滚动得太远

javascript - 正则表达式:如何从标签内部获取内容(使用 javascript)?