javascript - 如何按顺序对 XML 数据进行排序?

标签 javascript jquery html xml get

我有一组列表项,我想在页面加载时自动从高到低显示它们。最好使用 jquery 或 javascript。

这是我的代码。

数据.xml

<cd>
  <presantage>10%</presantage>
</cd>
<cd> 
  <presantage>50%</presantage>
</cd>
<cd>
  <presantage>5%</presantage>
</cd>

用于显示xml数据

$(document).ready(function(){
    $.ajax({
        type:"GET",
        url:"data.xml",
        dataType:"xml",
        success:xmlParser2
    });
   });
   function xmlParser2(xml){
    xml = $(xml).children();
    $(xml).children().each(function () {

       let tag = $(this).prop("tagName");
        let presantage = '<div>' + $(this).find("presantage").text() + '</div>';

        let html = '<li>'+ (presantage)+'</li>';

            $(".list").append(html);
    });
}

对于订单元素

var ul = $(".list:first");
var arr = $.makeArray(ul.children("li"));

arr.sort(function(a, b) {
    var textA = +$(a).text();
    var textB = +$(b).text();

    if (textA < textB) return -1;
    if (textA > textB) return 1;

    return 0;
});

ul.empty();

$.each(arr, function() {
    ul.append(this);
});

html

<ul class="list"></ul>

Plunker

最佳答案

试试这个:

 function xmlParser2(xml){
   var obj = {};

xml = $(xml).children();
$(xml).children().each(function () {

    obj[$(this).find("presantage").text().replace('%', '')]  = $(this).find("presantage").text();




});

for(var k in obj ){
    let html = '<li>'+ (obj[k])+'</li>';

    $(".list").append(html);
}

// alert(JSON.stringify(obj)) 
}

关于javascript - 如何按顺序对 XML 数据进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52872341/

相关文章:

javascript - 如何放大 jQuery?

jquery - DataTables - 不一次加载所有数据?

php - 我们可以从 php 文件传递​​一个包含 jquery $.get() 中 url 的变量吗

javascript - 如何将 d3.js 与 JSRender 结合使用?

javascript - JQuery 日期选择器 : put week number in the input box instead of selected day

javascript - React.js - 在 componentDidMount() 中调用函数时状态不会更新

javascript - 如何在sencha2 的cardlayout 中从page3 跳转到page1?

javascript - 可折叠菜单不会在窗口调整大小时保持关闭状态

html - 为什么有这么多文本从 flexbox 对齐的内容中溢出?

javascript - 如何手动设置Kendo Grid的总计数?