javascript - 使用 javascript 重新组织 DOM 元素

标签 javascript jquery sorting dom

我对此感到很不开心。我想重新组织这些<span>每个 <td class="ref_type_block"> 中的元素,按属性 sort_order 排序.

<tr>
    <td class="time_col">11am</td>
    <td class="ref_type_block">
        <span class="ref_type_1" sort_order="0">█</span>
        <span class="ref_type_2" sort_order="1">█</span>
        <span class="ref_type_3" sort_order="3">█</span>
        <span class="ref_type_13" sort_order="2">█</span>
    </td>
</tr>
<tr>
    <td class="time_col">12pm</td>
    <td class="ref_type_block">
        <span class="ref_type_1" sort_order="0">█</span>
        <span class="ref_type_2" sort_order="1">█</span>
        <span class="ref_type_3" sort_order="3">█</span>
        <span class="ref_type_13" sort_order="2">█</span>
        <span class="ref_type_13" sort_order="2">█</span>
        <span class="ref_type_13" sort_order="2">█</span>
    </td>
</tr>

我有以下 javascript 函数,感觉非常接近,我可以将内容记录到控制台,显示它正在选择正确的部分,并且 .sort()正在触发,但它没有重写到 <td>元素。

function sortBlocks() {

    var tds = $('.ref_type_block');
    for (var i = tds.length - 1; i >= 0; i--) {
        td = tds[i]
        console.log( $(td).find('span').length );
        if ($(td).find('span').length > 0) {
            console.log("firing on:",td);
            $(td).find('span').sort(function (a, b) {            
                return +a.dataset.sort_order - +b.dataset.sort_order;
            }).appendTo( $(td) );
        }
    };
}

我已经离开 javascript/jquery 有一段时间了,担心它非常简单,特别是在 .appendTo() 周围。方法。任何帮助将不胜感激。

最佳答案

试试这个

$('table').find('.ref_type_block').each(function(i,k){
    $(k).find('span').sort(function (a, b) {
        var first =parseInt( $(a).attr('sort_order'));
        var second =parseInt( $(b).attr('sort_order'));
        return (first < second) ? -1 : (first > second) ? 1 : 0;
    }).appendTo($(k));
});

$('table').find('.ref_type_block').each(function(i,k){
        $(k).find('span').sort(function (a, b) {
            return ($(b).attr('sort_order')) < ($(a).attr('sort_order')) ? 1 : -1;
        }).appendTo($(k));
    });

关于javascript - 使用 javascript 重新组织 DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39086656/

相关文章:

javascript - 如果您只有使用 JavaScript 的图像数据 url,是否可以旋转图像?

javascript - 从 Panotour Pro 热点调用 JavaScript 函数?

javascript - Yii "results per page"ajax 下拉列表在同一页面加载其他 ajax 内容后中断

javascript - 如何从不需要的部分剥离字符串?

javascript - 以 Angular 从 API JSON 中排序的项目日期

javascript - document.getElementsByTagName 不是函数

javascript - 从指令访问 AngularJS 范围

javascript - 偏移量不能将 div 返回到 0,0?

javascript - jQuery 使用数据 id 对元素进行排序

Javascript 两个 arraySort 返回相同的结果