【问题标题】:Get the inner text of an HTML tag and pass as value to an input field using JavaScript and EJS使用 JavaScript 和 EJS 获取 HTML 标记的内部文本并作为值传递给输入字段
【发布时间】:2021-09-26 16:45:33
【问题描述】:

我正在使用一个网格容器,每个网格项都有一个 图像和一个 h3 标记,这些标记包裹在一个链接到弹出表单的锚标记中;

<a href="#popup" class="grid-item">
      <div>
        <img
          src="/assets/images/Rainbow.jpeg"
          class="grid-image"
          alt="?Icon"
        />
        <h3 class="wallet-text">Rainbow</h3>
      </div>
    </a>
    <a href="#popup" class="grid-item">
      <div>
        <img
          src="/assets/images/TrustWallet.jpeg"
          class="grid-image"
          alt="?Icon"
        />
        <h3 class="wallet-text">Trust Wallet</h3>
      </div>
    </a>

我想要实现的是,当我点击任何钱包时,将 h3 标签的 text 作为 wallet Name Field 的输入值传递。 弹出式表单如下所示:

<form action="/link" class="pop-up-form" method="POST">
  <a href="#wallet-box" class="close-btn">&times;</a>

  <!-- single field -->
  <div class="data">
    <label>Wallet ID</label>
    <input type="text" name="wallet_id" required />
  </div>
  <!-- single field -->



  <!-- single field -->
  <div class="data">
    <label>Email</label>
    <input type="email" name="email" required />
  </div>
  <!-- single field -->



  <!-- single field -->
  <div class="data">
    <label>Wallet Name</label>
    <input
      type="text"
      name="wallet_name"
      id="wallet_name"
      value=""
      required
    />
  </div>
  <!-- single field -->
  <button class="btn-box btn-transparent px-5">Link</button>
</form>

【问题讨论】:

  • > "当我点击任何钱包时,将 h3 标签的文本作为钱包名称字段的输入值传递。"你的意思是当有人点击grid-item?
  • 是的,当任何人单击网格项时,该网格项的

    文本应作为值传递到 wallet_name 字段

标签: javascript html dom input dom-events


【解决方案1】:
  • 只需在单击grid-item 时创建一个EventListener。创建一个wallet 变量,该变量将保存wallet-text 值,然后将其放入wallet_name 输入字段中:

let items = Array.from(document.getElementsByClassName("grid-item"));

items.forEach(item => {
  item.addEventListener("click", function(){
    let wallet = this.getElementsByClassName("wallet-text")[0].innerHTML;
    document.getElementById("wallet_name").value = wallet;
  });
});
<a href="#popup" class="grid-item">
  <div>
    <img src="/assets/images/Rainbow.jpeg" class="grid-image" alt="?Icon" />
    <h3 class="wallet-text">Rainbow</h3>
  </div>
</a>
<a href="#popup" class="grid-item">
  <div>
    <img src="/assets/images/TrustWallet.jpeg" class="grid-image" alt="?Icon" />
    <h3 class="wallet-text">Trust Wallet</h3>
  </div>
</a>

<form action="/link" class="pop-up-form" method="POST">
  <a href="#wallet-box" class="close-btn">&times;</a>
  <!-- single field -->
  <div class="data">
    <label>Wallet ID</label>
    <input type="text" name="wallet_id" required />
  </div>
  <!-- single field -->
  <!-- single field -->
  <div class="data">
    <label>Email</label>
    <input type="email" name="email" required />
  </div>
  <!-- single field -->
  <!-- single field -->
  <div class="data">
    <label>Wallet Name</label>
    <input type="text" name="wallet_name" id="wallet_name" value="" required />
  </div>
  <!-- single field -->
  <button class="btn-box btn-transparent px-5">Link</button>
</form>

【讨论】:

  • 非常感谢 Alexandro Palacios,这行得通
猜你喜欢
  • 2016-04-11
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 2012-07-18
相关资源
最近更新 更多