为了账号安全,请及时绑定邮箱和手机立即绑定

如何在查询中使用数组值过滤 XML 数据

如何在查询中使用数组值过滤 XML 数据

郎朗坤 2022-06-05 16:30:50
我的问题是如何使用一组值过滤一组 xml 数据。下面是 jquery 代码和 xml 数据。帮助解决问题。我使用了过滤器功能,虽然它不起作用JS - 代码    var data = response.results[1][0].Variant;    var arrdata = data.split(';');    arrdata.shift(); // *result : ["1", "2", "3"]*    function loadfail(){        alert("Error: Failed to Load Menu Data : XML");        }        $.ajax({        url: '/Prueba/FCD/menudata/menu.xml',          dataType: 'xml',        success: menu,        error: loadfail        });function menu(document){                $(document).find("variant")                .filter(function () {                    return $(this).find('value').text()==arrdata                })                .each(function () {                    var variant_Label = $(this).find('text').text();                    var variant_Value = $(this).find('value').text();                    $('#variant_model').append(                   '<option value="'+ variant_Value + '">' + variant_Label + '</option>'                    );                })            }XML - 数据<menu><variant>    <value>1</value>    <text>12 pa</text></variant><variant>    <value>2</value>    <text>30 pa</text></variant><variant>    <value>3</value>    <text>40 pa</text></variant><variant>    <value>4</value>    <text>50 pa</text></variant></menu>
查看完整描述

1 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

加载 XML 数据并过滤动态值并将其归属。


$("#variant_model").empty()


                    var data = response1.results[1][0].Variant;

                    var arrdata = data.split(';');

                    arrdata.shift();

                    function loadfail() {

                        alert("Error: Failed to Load Menu Data : XML");

                    }

                    $.ajax({

                        url: '/Prueba/FCD/menudata/menu.xml',

                        success: menu,

                        error: loadfail

                    });

                    console.log(arrdata);


                    function menu(document) {

                        var array2 = arrdata;

                        var array1 = []

                        $(document).find("variant").each(function () {

                            var text = $(this).find('text').text();

                            var value = $(this).find('value').text();

                            var combo = { text, value }

                            array1.push(combo)

                        })

                        array1 = array1.filter(function (item) {

                            return array2.includes(item.value);

                        })


                        array1.forEach(function (item) {

                            $("#variant_model").append($("<option></option>").val(item.value).html(item.text));

                        })

                        $('#variant_model option[value="' + response.item[0][0].Variant + '"]').attr('selected', true);


                    }


查看完整回答
反对 回复 2022-06-05
  • 1 回答
  • 0 关注
  • 104 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号