javascript - 使用 Javascript 编写故事

标签 javascript html dom innerhtml

我正在这里开发一个小网站,它基本上是一个带有名词的故事,您可以在文本框中输入您选择的名词,该文本框应该使用 Javascript 添加到完整的故事中。

我编写的 Javascript 只在第一个跨度 (.adj) 上使用 querySelector。它现在可以工作,但它只是文本框中分配给第一个跨度的第一个单词。我想使用 querySelectorAll 并填充整个故事。我该怎么走 关于这样做?这是我当前的代码:

var textbox = document.querySelector("#adjektiver");
var button = document.querySelector("#generateBtn");
var adjektiv = document.querySelector(".adj");

function addWords() {
  var textValue = textbox.value.split(","); //Array av strenger separert med komma

  for (var i = 0; i < textValue.length; i++) {
    adjektiv.innerHTML = textValue[i];
    //textbox = "";
  }
}

button.addEventListener("click", addWords);
.adj{color:blue}
<div class="left">
  <p>En dag den <span class="adj">_____________</span> Justin Bieber stod på sin <span class="adj">_____________</span> scene og sang på den <span class="adj">______________</span> sangen Girlfriend, fikk han plutselig øye på en <span class="adj">_____________</span>    jente blant det <span class="adj">____________</span> publikummet.</p>
</div>

<div class="right">
  <legend>Skriv inn en kommaseparert liste av adjektiver. Du trenger å skrive inn <span id="numofWords"> __ </span> ord. Du har foreløpig skrevet inn <span id="currentNumOfWords">0</span> ord.</legend>
  <textarea name="adjektiver" id="adjektiver" cols="30" rows="10"></textarea>
  <button id="generateBtn">Lag historie!</button>
</div>

最佳答案

你们很接近。您需要做的就是使用 querySelectorAll (如您所知),而不是 adjektiv.innerHTML,使用 adjektiv[i].innerHTML:

var textbox = document.querySelector("#adjektiver");
var button = document.querySelector("#generateBtn");
// Use querySelectorAll here ↓
var adjektiv = document.querySelectorAll(".adj");

function addWords() {
  var textValue = textbox.value.split(",");

  for (var i = 0; i < textValue.length; i++) {
    // Use adjektiv[i] here ↓
    adjektiv[i].innerHTML = textValue[i];
  }
}

button.addEventListener("click", addWords);
.adj{color:blue}
<div class="left">
  <p>En dag den <span class="adj">_____________</span> Justin Bieber stod på sin <span class="adj">_____________</span> scene og sang på den <span class="adj">______________</span> sangen Girlfriend, fikk han plutselig øye på en <span class="adj">_____________</span> jente blant det <span class="adj">____________</span> publikummet.</p>
</div>

<div class="right">
  <legend>Skriv inn en kommaseparert liste av adjektiver. Du trenger å skrive inn <span id="numofWords"> __ </span> ord. Du har foreløpig skrevet inn <span id="currentNumOfWords">0</span> ord.</legend>
  <textarea name="adjektiver" id="adjektiver" cols="30" rows="10">foo,bar,baz,qux</textarea>
  <button id="generateBtn">Lag historie!</button>
</div>

但请注意,您可能需要检查框中输入了多少个单词,以防单词数量多于 .adj

关于javascript - 使用 Javascript 编写故事,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43212497/

相关文章:

javascript - 从 JavaScript 访问 DOM 元素并向其发送事件

php - 如何从另一个 .php 文件中输入的 .php 文件访问变量?

javascript - 将查询结果从 Node.js 传递到 html 的变量中

mysql - 将用户 ckeditor html 数据保存到数据库时要验证什么

java - 如何在 Java 中通过 DOM 创建以下 XML 标记

javascript - 使用 uiOutput 用 Shiny 的键盘触发 actionButton

javascript - 将溢出的 div 平滑地滚动到其中的特定位置

javascript - ReactJS 和 AJAX 未捕获类型错误 : Cannot Read Property 'bugs' of Undefined

javascript - 无法使用 jQuery 定位动态生成的元素

jquery - 是否可以使用 jQuery 编辑通过 &lt;iframe&gt; 加载的 DOM 元素?