Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过span自定义值javascript对列表重新排序_Javascript_Jquery_Html_Html Lists - Fatal编程技术网

通过span自定义值javascript对列表重新排序

通过span自定义值javascript对列表重新排序,javascript,jquery,html,html-lists,Javascript,Jquery,Html,Html Lists,这是我按程序创建的无序列表。我希望使用javascript根据每个span标记内的数据排序值对该列表重新排序。感谢您的帮助 谢谢 下面是我使用javascript的尝试,我确信我错过了一些东西 <ul id="CoreWebsiteTopHeader_6_list"><li><a class="navigation" href="/seller"><span class="editableLinks" data-id="32638" data-sort=

这是我按程序创建的无序列表。我希望使用javascript根据每个span标记内的数据排序值对该列表重新排序。感谢您的帮助

谢谢

下面是我使用javascript的尝试,我确信我错过了一些东西

<ul id="CoreWebsiteTopHeader_6_list"><li><a class="navigation" href="/seller"><span class="editableLinks" data-id="32638" data-sort="110">Seller</span></a></li><li><a class="navigation" href="/about"><span class="editableLinks" data-id="32639" data-sort="10">About</span></a></li><li><a class="navigation" href="/faqs"><span class="editableLinks" data-id="32641" data-sort="40">FAQs</span></a></li><li><a class="navigation" href="/privatelending"><span class="editableLinks" data-id="32646" data-sort="60">Private Lending</span></a></li><li><a class="navigation" href="/problemproperty"><span class="editableLinks" data-id="32647" data-sort="70">Problem Property</span></a></li><li class="current"><a class="navigation" href="/quickoffer"><span class="editableLinks" data-id="32648" data-sort="90">Quick Offer</span></a></li><li><a class="navigation" href="/woahslowdown"><span class="editableLinks" data-id="32650" data-sort="120">Stop Foreclosure</span></a></li></ul>

你可以这样做:

 <script type="text/javascript">

$(document).ready(function () {
    $('li').sort(sortEm).prependTo($('ul#list'));
    // Handler for .ready() called.
});
function sortEm(a, b) {
    return parseInt($('span', a).getAttribute('data-sort')) < parseInt($('span', b).getAttribute('data-sort')) ? 1 : -1;
}

就在这里,只需将getAttribute替换为attr或使用前面提到的@acontell之类的数据。顺便说一句,你的条件是相反的降序设置不确定这是否是故意的,如果不是交换-1和1

var li = $("li");

li.sort(compare);
function compare(a, b) {
    var a_data = $('span',a).data("sort"), b_data = $('span',b).data("sort");

    return (+a_data) - (+b_data);
}

$("#CoreWebsiteTopHeader_6_list").empty();
$.each(li, function() {
    $("#CoreWebsiteTopHeader_6_list").append(this);
});

你的尝试在哪里?这并不难在网上搜索。代码编写工厂$document.readyfunction{$'li'.sortsortEm.prependTo$'ullist';//Handler for.ready called.};函数sortEma,b{return parseInt$'span',a.getAttribute'data-sort'$(function () { $('li').sort(function(a, b){ return $('span', a).data('sort') < $('span', b).data('sort') ? -1 : 1; }).prependTo($('ul')); // Handler for .ready() called. });