按数据库表中的值排序,而不是按字母顺序排序

时间:2019-07-11 14:42:26

标签: javascript

在我的一种表单中,我沉迷于可选选项,并且按字母顺序对其进行了排序(下面的代码)。我想更改它,以按照从同一数据库分配给它的level的值对其进行排序。

My database

是否有类似.valueOf(level)的功能?

var options = $("#practitioner_competence_level_id_create option");
options.detach().sort(function(a,b) {
    var at = $(a).text();
    var bt = $(b).text();
    return (at > bt)?1:((at < bt)?-1:0);
});
options.appendTo("#practitioner_competence_level_id_create");

2 个答案:

答案 0 :(得分:0)

我通过将数据库中的值设置为{{$ level-> level}},然后按级别值创建排序脚本来解决了问题。

<select name="practitioner_competence_level_id_create"
                        id="practitioner_competence_level_id_create"
                        class="form-control">
                    @foreach($competence_levels as $level)
                        <option value="{{$level->level}}">{{$level->name}}</option>
                    @endforeach
                </select>

排序脚本:

var selectList = $('#practitioner_competence_level_id_create option');

selectList.sort(function(a,b){
    a = a.value;
    b = b.value;
    return a-b;
});

$('#practitioner_competence_level_id_create').html(selectList);

答案 1 :(得分:-3)

您可以使用

按级别对它们进行排序
list.sort((a, b) => (a.level > b.level) ? 1 : -1)

这将根据级别对数组进行排序。