Javascript - 输入文本并输出到多个区域

标签 javascript html input

我正在尝试在一个字段中输入文本,并将其输出到多个字段。

目前,它仅输出到第一个字段。

这是输入:

  <form class="form" onchange="myFunction()">
      <div class="mb-4">
        <p>The quick sly fox jumped over the <input id="object" class="inline borderless-input"></p>
      </div>
  </form>

JS控制输出:

function myFunction()

  {
    //Object
    var x = document.getElementById("object");
    var div = document.getElementById("objectDisplay");
    div.innerHTML = x.value;    
  }

这是我正在使用的代码笔: Codepen

最佳答案

ID 必须是唯一的。使用类和 for 循环循环遍历每个类并更改它。

这不能通过 document.getElementById 来完成。请参阅https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById有关 document.getElementById 的一些基本信息。

document.getElementsByClassName 返回一个数组,其中填充了具有特定类的现有元素。在本例中为objectDisplay。如果您想了解更多相关信息,请查看此处:https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementsByClassName

新代码应如下所示:

function myFunction() {
  //Object
  var x = document.getElementById("object");
  var div = document.getElementsByClassName("objectDisplay");
  for (i = 0; i < div.length; i++) {
    div[i].innerHTML = x.value;
  }
}
.container {
  padding: 10px;
}

.text-strong {
  font-weight: bold;
}

.inline {
  display: inline;
}

.borderless-input {
  background-color: transparent;
  border-style: solid;
  border-width: 0px 0px 1px 0px;
  padding: .5rem .75rem;
  text-align: center;
}
<div class="container">
  <div class="row">
    <div class="col-lg-12">
      <form class="form" onchange="myFunction()">
        <div class="mb-4">
          <p>The quick sly fox jumped over the <input id="object" class="inline borderless-input"></p>
        </div>
      </form>
    </div>
  </div>
</div>

<div class="container">
  <div class="row">
    <div class="col-lg-12">
      <h3><strong>Output</strong></h3>
    </div>
  </div>
  <div class="row">
    <div class="col-lg-12">
      <p>The quick sly fox jumped over the <span class="objectDisplay inline"></span>.</p>
      <p>The quick sly fox jumped over the <span class="objectDisplay inline"></span>.</p>
      <p>The quick sly fox jumped over the <span class="objectDisplay inline"></span>.</p>
    </div>
  </div>
</div>


<!-- For Testing Only -->
<div class="container">
  <div class="row">
    <div class="col-lg-10 offset-lg-1 mx-auto">
      <!-- Test Here -->

    </div>
  </div>
</div>

关于Javascript - 输入文本并输出到多个区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47542670/

相关文章:

javascript - jQuery: trim 无法检查空输入

javascript - bootstrap 词缀导航栏不检测图像高度

javascript - Firefox SDK 插件中的 OS.File

php - 如何让这些链接按钮在此 PHP 代码中正确显示?

php - 如何在不裁剪 500 x 500 的情况下压缩图像的宽度和高度

javascript - 如何在 React 中分隔输入字段值?

javascript - 为什么第一次函数调用的方向在这里没有改变?

Javascript Revealing Module 模式 - 在函数返回后公开初始化变量

php - 表单提交两次

actionscript-3 - 如何从 Line-In 设备捕获声音