键入输入时更改Div的内容

时间:2019-12-16 20:06:16

标签: javascript html dom

我需要在键入输入时更改多个DIV的内容。

我已经能够更改第一个div,尝试使用一些循环并在这里浏览了其他问题,但没有成功。

let input = document.getElementById('in');
let out = document.getElementById('out');

input.onkeyup = function() {
  out.innerHTML = input.value;
}
<input type="text" id="in">
<div id="out"></div>

我应该显示从输入#in到几个div #out(它们将是类)的值。 使用JQuery进行淘汰。

4 个答案:

答案 0 :(得分:1)

您可以使用document.getElementsByClassName("out");进行此操作,然后使用for循环更改所有不同的元素。
在for循环中,您可以通过elems.item(index)访问该元素。

请参见下面的代码段

let input = document.getElementById('in');
let outs = document.getElementsByClassName("out");

input.onkeyup = function() {
  for(var i = 0; i < outs.length; i++){
      outs.item(i).innerHTML = input.value;
  }
}
<input type="text" id="in">
<div class="out"></div>
<div class="out"></div>

答案 1 :(得分:1)

使用out类创建div,并使用document.querySelectorAll通过查询选择器获取所有元素

const input = document.getElementById('in');
const divs = document.querySelectorAll('.out');

input.onkeyup = function() {
  divs.forEach(function(div) {
    div.innerHTML = input.value;
  });
}
<input type="text" id="in">
<div class="out"></div>
<div class="out"></div>
<div class="out"></div>
<div class="out"></div>

答案 2 :(得分:1)

到目前为止,您尝试了什么?我立即看到的问题是,您正在获取单个元素而不是多个元素。

<script>
    let input = document.getElementById('in');
    let out = document.getElementsByClassName('out');

    input.onkeyup = function () {
        for each (let item in out) {
            //loops through each element with the class 'out' and sets the innerHTML to the input's value
            item.innerHTML = input.value;
        }
    }
</script>

答案 3 :(得分:0)

谢谢大家的帮助,无论如何我今天早上还是找到了解决方法:

<input type="text" id="sentence">
    <div class="out"></div>
    <div class="out"></div>

    let input = document.getElementById('sentence');
    let divs = document.querySelectorAll('div);

    input.addEventListener('keyup', function(){
          for(let i=0; i < divs.length; i++){
              divs[i].innerHTML = input.value;
          }
    })

检查其他答案,我想知道它们之间的区别:

divs.forEach(function(div){ ... })

for each (let item in out) { ... }

for(var i = 0; i < outs.length; i++){ ... }
相关问题