如何替换.data javascript函数中的逗号(使用.replace)

How to replace comma inside .data javascript function (with .replace)

本文关键字:使用 replace javascript 何替换 替换 data 函数      更新时间:2023-09-26

在对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>

你应该使用toString()然后replace()像下面这样函数。顺便说一句,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>

尝试以下操作:

$(".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(',', ''));
  });
});

这是演示