【问题标题】:How to replace comma inside .data javascript function (with .replace)如何替换 .data javascript 函数中的逗号(使用 .replace)
【发布时间】:2016-05-21 04:51:32
【问题描述】:

在对 div 列表进行排序时,我试图从提取的值中替换逗号(使用 .data)。

带逗号的值无法正确排序。如何使用替换功能正确排序 div?

 <script>   
    $(".button").click(function(){
         var divList = $(".cell");
         divList.sort(function(b, a){
         return $(a).data("number")-$(b).data("number")
         });
    $(".table").html(divList);
    });
</script>

<div class="button">Click</div>
<div class="table">
    <div class="cell" data-number="1,942"></div>
    <div class="cell" data-number="42"></div>
    <div class="cell" data-number="161"></div>
    <div class="cell" data-number="5,382"></div>
    <div class="cell" data-number="892"></div>
    <div class="cell" data-number="4"></div>
    <div class="cell" data-number="38"></div>
</div>

我试过这个:

<script>    
    $("button").click(function(){
        var divList = $(".cell");
        divList.sort(function(b, a){
        return $(a).data("number").replace(/,/g, '')-$(b).data("number").replace(/,/g, '')
    });
    $(".table").html(divList);
});
</script>

【问题讨论】:

  • 也许你需要使用parseInt。即parseInt($(a).data("number").replace(/,/g, '')) - parseInt($(b).data("number").replace(/,/g, '')) ?

标签: javascript jquery sorting replace str-replace


【解决方案1】:

尝试以下方法:

$(".button").click(function() { // You missed the . for class here
  $(".cell").each(function() { // Loop through each cell
    // Set the data-number attribute
    $(this).attr('data-number', $(this).attr('data-number').replace(',', ''));
  });
});

这是DEMO

【讨论】:

    【解决方案2】:

    您应该使用toString(),然后使用replace() 函数,如下所示。 BTW 在您的 html 的第一行可能是您使用 div 而不是 button

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <button>Click</button>
    <div class="table">
        <div class="cell" data-number="1,942">1,942</div>
        <div class="cell" data-number="42">42</div>
        <div class="cell" data-number="161">161</div>
        <div class="cell" data-number="5,382">5,382</div>
        <div class="cell" data-number="892">892</div>
        <div class="cell" data-number="4">4</div>
        <div class="cell" data-number="38">38</div>
    </div>
    
    <script>
        $("button").click(function () {
            var divList = $(".cell");
            divList.sort(function (b, a) {
                return $(a).data("number").toString().replace(/,/g, '') - $(b).data("number").toString().replace(/,/g, '');
            });
            $(".table").html(divList);
        });
    </script>

    【讨论】:

      猜你喜欢
      • 2010-12-03
      • 2013-12-05
      • 1970-01-01
      • 2021-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-29
      • 1970-01-01
      相关资源
      最近更新 更多