首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在循环内单击所有元素

在循环内单击所有元素
EN

Stack Overflow用户
提问于 2020-01-15 07:15:07
回答 2查看 41关注 0票数 0

我从ajax中获取了一些数据,并通过循环来制作卡片。我在我的循环中有一个onclick。单击本应获取索引的数据对象,但每次单击first element时,它都会获取数组中的所有对象。我尝试将for循环更改为for each,将函数移出循环并将"this“绑定到它,但无济于事。有什么帮助吗?

代码语言:javascript
运行
复制
enter code here $.ajax({
url: "/user",
method: "POST" }).then(res => {
console.log(res);
let friend = res.request;
for (i = 0; i < friend.length; i++) {
  var html2 =
    "<div class='ui card'><div class='card' id='rcard'> <div class='content'> <img class='right floated mini ui image' id='rpic' src = '" +
    friend[i].picture +
    "<div class='header'>" +
    friend[i].username +
    "</div><div class='meta'>" +
    friend[i].Email +
    "</div><div class='description'>" +
    friend[i].username +
    "  would like to be your friend </div></div><div class='extra content'><div class='ui two buttons'><div class='ui basic green button' id='accept'>Approve</div> <div class='ui basic red button' id='decline'>Ignore</div></div> </div></div>";
  friend[i].picture
    ? friend[i].picture
    : $("#rpic").attr(
        "src",
        "https://icons-for-free.com/iconfiles/png/512/business+costume+male+man+office+user+icon-1320196264882354682.png"
      );
  $("#cardcontainer").append(html2);
  $(".ui.basic.green.button").click(i => {
    console.log("hello");
    var data = { data: friend[i] };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-17 00:37:54

当您使用$(".ui.basic.green.button")时,它将获取具有此类的页面上的所有元素。因此,在您的代码中,尝试更改

$(".ui.basic.green.button")$(".ui.basic.green.button")[i]

希望它能有所帮助!!

票数 0
EN

Stack Overflow用户

发布于 2020-01-15 07:20:02

$(".ui.basic.green.button")使用选择器.ui.basic.green.button抓取页面上的所有元素,它并不局限于循环的元素。

因此,在每次循环中,您都要为页面所有.ui.basic.green.button映射click()。

因此,当您按下按钮时,因为它映射到所有对象,所以它们都会执行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59743133

复制
相关文章

相似问题

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