单击jQuery提取数组值

时间:2016-11-14 19:44:03

标签: jquery arrays loops object extraction

尝试使用extractAssets();

实现以下目标
  • 点击.clickable将资产(lists[i].assets)值提取为0(类似lists[i].assets - lists[i].assets)。

正如您所看到的那样,我没有提取但是正在执行.html(" $ 0"),因此需要进行动态提取。

see JSFiddle

工作小提琴示例表示赞赏,谢谢。



var list1 = {
  id: 7,
  assets: 74651.90,
  ratePercent: 0.02,
  rateUSD: 24.03
};
var list2 = {
  id: 8,
  assets: 86735.79,
  ratePercent: -0.06,
  rateUSD: 2.41
};

var lists = [list1, list2];

$(document).ready(function() {
  show();
  extractAssets();
});

function extractAssets() {
  for (var i = 0; i < lists.length; i++) {
    //var text = $(".coin" + [i]).text();
    $(".clickable" + [i]).click(function() {
      //$(".coin" + [i]).text(text == $(this).text() - $(this).text() ? $(this).text() - $(this).text() : $(this).text());
      $(this).find(".coin").html("$0");
      //$(".coin" + [i]).text(text == $(this).text() ? "$0" : $(this).text());
    })
  }
}

function show() {
  for (var i = 0; i < lists.length; i++) {
    $(".DataContent").append('<div class="clickable' + [i] + '"><p class="data">' + lists[i].id + '</p><ul><li class="coin">$' + lists[i].assets + '</li><li class="rate"><span class="ratePercent">' + lists[i].ratePercent.toFixed(2) + '%</span> / <span class="rateUSD">$' + lists[i].rateUSD.toFixed(2) + '</span></li></ul></div>');
  }
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<section class="DataContent"></section>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

我觉得您使用数据作为参考,但使用html dom元素进行操作似乎有点奇怪。我几乎不向我们推荐一种模板语言。无论如何......使用您的实际代码,这就是我要更新的内容:

function extractAssets() {
    $(".clickable").click(function(){
        var currentCoin = $(this).find('.coin');
      var difference = (Number($(currentCoin).text().replace('$','')) - Number($(currentCoin).text().replace('$','')));
      $(currentCoin).html('$' + difference);
        });
}

function show() {
  for (var i = 0; i < lists.length; i++) {
    $(".DataContent").append('<div class="clickable"><p class="data">' + lists[i].id + '</p><ul><li class="coin">$' + lists[i].assets + '</li><li class="rate"><span class="ratePercent">' + lists[i].ratePercent.toFixed(2) + '%</span> / <span class="rateUSD">$' + lists[i].rateUSD.toFixed(2) + '</span></li></ul></div>');
  }
}

请注意,这不会格式化最后的金额。

此致