[英]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.