[英]How to filter XML data with the array values in query
我的问题是如何使用值数组过滤 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>
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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.