javascript - JQuery - 设置为按钮的数据是相同的

标签 javascript jquery click append

我有一些 JSON 数据。我现在正在尝试插入一个表行。此行插入正常。

问题是我想将数据 append 到每个按钮。

不幸的是,每一个都设置了相同的数据。因此输入的每个按钮都应该有一个包含 1-无穷大 ID 的数据。

这是我 append 所有项目的 for 循环。

$("#market-table > tbody")
                        .append($('<tr class="row100 body">')
                            .append($('<td class="cell100 column1">')
                              .append(data.company.companyName)
                              .append('<span class='+changeClass+'>'+data.company.priceChange+'</span>')
                            )
                            .append($('<td class="cell100 column2">')
                              .append(data.company.marketType)
                            )
                            .append($('<td class="cell100 column3">')
                              .append(data.company.sharePrice)
                            )
                            .append($('<td class="cell100 column-actions">')
                             .append('<a href="#" class="market-action-button buy">Buy</a>')
                             )
                            .append($('<td class="cell100 column4">')
                              .append(data.company.sharesAvailable)
                            )
                        )
                        .find('.market-action-button').data("company-data", data);
                     }

这是点击监听器:

$(document).on('click','.market-action-button.buy',function() {
        marketData = ($(this).data("company-data"));
        console.log(marketData.company.id);

每次都会打印相同的 Id。

这与.find()有关吗?

最佳答案

不要像这样添加公司数据:

 .find('.market-action-button').data("company-data", data); 

在生成按钮项时添加它,您将使用循环的最后一次调用来覆盖它,因为您获得了表中的所有按钮。变化:

.append('<a href="#" class="market-action-button buy">Buy</a>')

对于

.append('<a href="#" class="market-action-button buy" data-company-data="'+data+'">Buy</a>')

关于javascript - JQuery - 设置为按钮的数据是相同的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51556459/

相关文章:

jquery点击更改类

javascript - OpenLayers WMS 图层透明度

javascript - $(document).ready 或 window.onload 用于隐藏/显示视频

javascript - THREE.JSONLoader 加载外部JSON文件(不是模型)

javascript - 通过单击将标签的文本添加到输入标签

javascript - 转换表单获取php中的方法url

jquery - “jQuery”仅在 IE 中未定义

android - 以编程方式创建图像按钮

javascript - 将变量传递给在 for 循环中创建的 click 函数

javascript - 在谷歌地图 API 3 中切换位置