RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1560523
Accepted
Hunter o_0
Hunter o_0
Asked:2024-01-07 15:17:41 +0000 UTC2024-01-07 15:17:41 +0000 UTC 2024-01-07 15:17:41 +0000 UTC

将每个文本区域的文本输出到预标记

  • 772

您需要将每个文本区域的文本输出到相应的预标记。有些东西似乎起作用了,但文本不是显示在 PRE 中,而是显示在 BUTTON 中。这是一个工作示例(javascript):

function txt(){
    
    document.querySelectorAll('.buttons').forEach(btns => {
        btns.addEventListener('click', function () {
            document.querySelectorAll('.pre').forEach(pre => {
                this.closest('.block').querySelectorAll('.precode').forEach(precode => {
                    //Отправка формы
                    this.innerHTML = precode.value;
                });
            });
        });
    });
 
}
.pre {border: 1px solid black; height: 20px}
<div class="block"><br>
    <textarea class="precode" onkeyup="txt()" name="text"></textarea>
    <br><pre class="pre"></pre>  
    <button class="buttons" onclick="return false">Вывести</button>
       
</div>
<div class="block"><br>
    <textarea class="precode" onkeyup="txt()" name="text"></textarea>
    <br><pre class="pre"></pre>
    <button class="buttons" id="button" onclick="return false">Вывести</button>
       
</div>
<div class="block"><br>
    <textarea class="precode" onkeyup="txt()" name="text"></textarea>
    <br><pre class="pre"></pre>
    <button class="buttons" onclick="return false">Вывести</button>
       
</div>

javascript
  • 2 2 个回答
  • 25 Views

2 个回答

  • Voted
  1. Best Answer
    WTFisGoingOn
    2024-01-07T15:25:13Z2024-01-07T15:25:13Z

    更正一下,您只是选择了错误的元素

    function txt(){
    document.querySelectorAll('.buttons').forEach(btns => {
        btns.addEventListener('click', function () {
            var precode = this.closest('.block').querySelector('.precode');
            var pre = this.closest('.block').querySelector('.pre');
            pre.innerHTML = precode.value;
        });
    });
    }
    .pre {border: 1px solid black; height: 20px}
    <div class="block"><br>
        <textarea class="precode" onkeyup="txt()" name="text"></textarea>
        <br><pre class="pre"></pre>  
        <button class="buttons" onclick="return false">Вывести</button>
           
    </div>
    <div class="block"><br>
        <textarea class="precode" onkeyup="txt()" name="text"></textarea>
        <br><pre class="pre"></pre>
        <button class="buttons" id="button" onclick="return false">Вывести</button>
           
    </div>
    <div class="block"><br>
        <textarea class="precode" onkeyup="txt()" name="text"></textarea>
        <br><pre class="pre"></pre>
        <button class="buttons" onclick="return false">Вывести</button>
           
    </div>

    • 0
  2. De.Minov
    2024-01-07T18:26:48Z2024-01-07T18:26:48Z

    一般来说,你的方法是错误的。

    你有一个可以通过每个人.buttons并挂在他们身上的代码addEventListener。
    该代码包含在按下按键时执行的函数中textarea。

    那些。每次点击,都会再次挂断事件。为什么?

    有两种选择,或者不包装代码:

    document.querySelectorAll('.buttons').forEach(btn => { // проходим по всем кнопкам
      btn.addEventListener('click', event => { // на каждую вешаем ивент на клик
        event.preventDefault(); // отключаем стандартное поведение кнопки
        
        const block = btn.closest('.block'); // обращаемся к родительскому `.block`
        const textareaValue = block.querySelector('.precode').value; // от него к `.precode` и получаем его value
        const pre = block.querySelector('.pre'); // от `.block` к `.pre`
        
        pre.textContent = textareaValue; // для `.pre` устанавливаем текст из `textareaValue`
        
        return false; // это аналог `onClick="return false"` который ставился каждому button
      });
    });
    .pre {
      border: 1px solid black;
      height: 20px
    }
    <div class="block"><br>
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons">Вывести</button>
    </div>
    <br>
    <div class="block">
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons">Вывести</button>
    </div>
    <br>
    <div class="block">
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons">Вывести</button>
    </div>

    或者使用该函数,但它看起来会有所不同:

    function txt(elem) { // создаём функцию, параметром передам кнопку, по которой произошло нажатие
      const block = elem.closest('.block'); // обращаемся к родительскому `.block`
      const textareaValue = block.querySelector('.precode').value; // от него к `.precode` и получаем его value
      const pre = block.querySelector('.pre'); // от `.block` к `.pre`
        
      pre.textContent = textareaValue; // для `.pre` устанавливаем текст из `textareaValue`
        
      return false; // это аналог `onClick="return false"` который ставился каждому button
    }
    .pre {
      border: 1px solid black;
      height: 20px
    }
    <div class="block"><br>
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons" onclick="txt(this)">Вывести</button>
    </div>
    <br>
    <div class="block">
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons" onclick="txt(this)">Вывести</button>
    </div>
    <br>
    <div class="block">
      <textarea class="precode" name="text"></textarea><br>
      <pre class="pre"></pre>
      <button class="buttons" onclick="txt(this)">Вывести</button>
    </div>

    • 0

相关问题

  • 第二个 Instagram 按钮的 CSS 属性

  • 由于模糊,内容不可见

  • 弹出队列。消息显示不正确

  • 是否可以在 for 循环中插入提示?

  • 如何将 JSON 请求中的信息输出到数据表 Vuetify vue.js?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5