jQuery选择多个类并提取数据

时间:2019-03-26 08:36:05

标签: jquery html

我想从多个类元素中的data-tag中提取数据。 each()函数是执行此操作的最佳方法吗?

jQuery:

$('#copymodal').on('show.bs.modal', function (event) {

            $(".copy19").each(function(){
                var a = data('total');
                alert(a);
            });
       })

HTML:

<a class='copy19' href='#'            
      data-statementid="14"
      data-total="98078"
      data-toggle="modal" 
      data-target="#editmodal">
      Edit
</a>

<a class='copy19' href='#'            
      data-statementid="16"
      data-total="78078"
      data-toggle="modal" 
      data-target="#editmodal">
      Edit
</a>

3 个答案:

答案 0 :(得分:1)

  

从多个类元素中的数据标签中提取数据

使用.map()取回值数组:http://api.jquery.com/jquery.map/

var totals = $(".copy19").map(function(i, e) {
    return $(e).data("total");
}).get();

console.log(totals)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class='copy19' href='#'            
      data-statementid="14"
      data-total="98078"
      data-toggle="modal" 
      data-target="#editmodal">
      Link
</a>

<a class='copy19' href='#'            
      data-statementid="16"
      data-total="78078"
      data-toggle="modal" 
      data-target="#editmodal">
      Link
</a>

答案 1 :(得分:0)

是的,每种方法都是这样做的一种方法,因为$('.copy19')返回元素列表(基本上是数组)。

答案 2 :(得分:0)

$(".copy19").each(function() {
    // Like this:
    var statementid = $(this).data('statementid');
    var total = $(this).data('total');
    var toggle = $(this).data('toggle');
    var target = $(this).data('target');

    // or like this..

    var allData = $(this)[0].dataset;
    /* value of allData is object with attributes:
    allData = {
        statementid: "14",
        total: "98078",
        toggle: "modal",
        target: "#editmodal"
    }
    */
});