javascript - 如何在计算时连接并显示 DOM 的输入值?

标签 javascript dom

我正在创建一个小脚本来学习。

我希望用户输入一个单词和他想要的字母,看看这个单词中有多少个。

我把它连接到了 DOM,但是我不知道如何将用户输入的输入连接到脚本来计算它,然后输出到 DOM 中。

有些有效,有些无效。

这是代码笔:https://codepen.io/Aurelian/pen/KxPKWE?editors=1010

这是 HTML:

<form id="form" class="container">

   <div class="">
      <label>Enter a phase:</label>
      <input  id="userString" name="userString"  placeholder="Coconut" />
   </div>

   <div class="">
      <label name="userString">Letter you want to search</label>
      <input id="userLetter" name="userLetter" placeholder="c" />
   </div>

   <div id="errorMsg"></div>

   <p class="result">
         There are 
         <span id="displayNumber"></span> letter
         <span id="displayLetter"></span> in the word 
         <span id="displayString"></span>
   </p>

   <button type="submit" name="submit" value="submit">Submit</button>
</form>

这是 JS:

var form = document.querySelector('#form');

const letterCountDisplay = function(letter) {
   const displayNumber = document.querySelector("#displayNumber");
   displayNumber.textContent = letter;
}

// const inputValidation = function() {
//       if ((userString || userLetter) === " ") {

//       const errorElement = document.createElement("p");
//       errorElement.textContent = "Please fill both of the inputs";
//       errorMsg.appendChild(errorElement);
//    }
// }

const createElement = function(userStringInput, userLetterInput) {
   // inputValidation();

   this.userStringInput = userStringInput;
   this.userLetterInput = userLetterInput;

   const userString = document.querySelector("#userString").value;
   const displayString = document.querySelector("#displayString");
   displayString.textContent = userStringInput;

   const userLetter = document.querySelector("#userLetter").value;
   const displayLetter = document.querySelector("#displayLetter");
   displayLetter.textContent = userLetterInput;

   const errorMsg = document.querySelector("#errorMsg");

}

form.addEventListener("submit", function(e) {
   e.preventDefault();
   countChar(createElement(x, y));
});

const countChar = function(string, letter) {
  let letterCount = 0;
  for (let i = 0; i < string.length; i++) {
      if(string.charAt(i) === letter) {
        letterCount ++  
      } 
    }
    return letterCountDisplay(letterCount);

}

countChar(createElement(userStringInput, userLetterInput));

最佳答案

也许您需要看看 jQuery。

此代码可能是与您的问题匹配的有效答案:

$("button").click(function(e) {
  let value = $("#userString").val()
  let letter = $("#userLetter").val()

  let count = ((value.match(new RegExp(letter, "g")) || []).length);
  $("#displayNumber").text(count)
  $("#displayLetter").text(letter)
  $("#displayString").text("'" + value + "'")

})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>
  <label>Enter a phase:</label>
  <input id="userString" name="userString" placeholder="Coconut" />
</p>

<p>
  <label name="userString">Letter you want to search</label>
  <input id="userLetter" name="userLetter" placeholder="c" />
</p>

<p>
  There are
  <span id="displayNumber"></span> letter
  <span id="displayLetter"></span> in the word
  <span id="displayString"></span>
</p>

<button>Submit</button>

编辑:这是使用纯js的普通解决方案

function submit() {
  let value = document.getElementById("userString").value
  let letter = document.getElementById("userLetter").value

  let count = ((value.match(new RegExp(letter, "g")) || []).length);
  document.getElementById("displayNumber").innerHTML = (count)
  document.getElementById("displayLetter").innerHTML = (letter)
  document.getElementById("displayString").innerHTML = ("'" + value + "'")
}
<p>
  <label>Enter a phase:</label>
  <input id="userString" name="userString" placeholder="Coconut" />
</p>

<p>
  <label name="userString">Letter you want to search</label>
  <input id="userLetter" name="userLetter" placeholder="c" />
</p>

<p>
  There are
  <span id="displayNumber"></span> letter
  <span id="displayLetter"></span> in the word
  <span id="displayString"></span>
</p>

<button onclick="submit()">Submit</button>

关于javascript - 如何在计算时连接并显示 DOM 的输入值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51910869/

相关文章:

javascript - angular2 路由守卫验证

javascript - 将响应式背景图像添加到部门类 Bootstrap

java - 创建 SOAP 请求时出现与命名空间相关的错误

javascript - 如果服务器出现故障,如何捕获浏览器抛出的 ERR_CONNECTION_REFUSED?

javascript - 为什么我不能在浏览器 : You may not have the required environment or OS to run this project 中运行空白的 Cordova 应用程序

html - 获取 HTML 元素的行号

javascript - 如何在没有库的情况下在 Vanilla JavaScript 中实现 "prevUntil"?

jquery - 选择第一个 sibling

javascript - Jquery 无限滚动加载其他站点的内容

javascript - 查询嵌套 JSON 对象