首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript在按下按钮时传递HTML文本

使用javascript在按下按钮时传递HTML文本
EN

Stack Overflow用户
提问于 2020-04-20 04:48:53
回答 1查看 28关注 0票数 0

我有一个rails应用程序,为每个数据库记录创建一个标准化的卡片盒。它在每个框中创建一个按钮,因此有相同按钮类的多个按钮。我想传递文本卡片框来发送AJAX请求。所以每个盒子都有一个不同的变量要发送。目前,当我单击任何按钮时,它只传递card-text数组中的最后一个元素。我将包含一个屏幕截图来显示我正在谈论的内容。下面是处理按钮单击的JavaScript代码片段。

代码语言:javascript
复制
let track = document.getElementsByClassName('btn btn-sm btn-outline-dark');
let getPackages = document.getElementsByClassName('card-text');
let tNumber = "";
for(let i=0; i<track.length; i++){
    track[i].addEventListener('click', function(){
        for (let j=0; j<getPackages.length; j++){
            console.log(i);
            console.log(j);
            if (i == j){
                console.log(tNumber = getPackages[j].innerText);
                tNumber = getPackages[j].innerText;
                console.log(tNumber); 
                sendRequest(tNumber);
            }
        } 

    });
}

整个卡片html:

代码语言:javascript
复制
 <div class="col-md-4">
        <div class="card mb-4 shadow-sm">
          <svg class="bg-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="placeholder: Thumbnail">
            <title>Package</title>
            <rect width="100%" height="100%" fill="#55595c"></rect>
            <image href="https://volumeintegration.com/wp-content/uploads/PackageIcon.png" width="100%" height="225"/>
          </svg>
          <div class="card-body">
            <p class="card-text">
              <%= package.tracking %>
            </p>
            <div class="d-flex justify-content-between alight-items-center">
              <div class="btn-group">
                <button type="button" class="btn btn-sm btn-outline-dark" id="trackButton">Track</button>
                <%= link_to 'Delete', package, method: :delete, data: { confirm: 'Are you sure?' }, class: "btn btn-sm btn-danger btn-outline-dark"%>
              </div>
            </div>
          </div>
        </div>
</div>
EN

回答 1

Stack Overflow用户

发布于 2020-04-20 06:14:37

我弄清楚了,我使用了.closest()方法,然后获得了孩子

代码语言:javascript
复制
let track = document.getElementsByClassName('btn btn-sm btn-outline-dark');
let tNumber = "";
for(let i=0; i<track.length; i++){
    track[i].addEventListener('click', function(){
           let parent = track[i].closest('.card-body');
           tNumber = parent.getElementsByClassName('card-text')[0].innerText;
           console.log(tNumber);
           sendRequest(tNumber);  
    });
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61311451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档