[英]Search for multiple nodes in XML using jQuery
我在車輛適配指南上取得了長足進步。 我已經根據之前的選擇動態創建了一個下拉框,現在我需要這些選擇來搜索xml文件並返回結果。 我的舊代碼僅按車輛年份進行搜索,並且返回了同一年份的所有車輛。 我正在嘗試使用多個變量來解析我的XML,現在無法返回任何結果。 如何搜索模型,然后在模型中搜索年份? 這是下面的代碼片段。
<script type="text/javascript">
jQuery(document).ready(function($){
var $xml;
var make = $('#make');
var model = $('#model');
var year = $('#year');
var front1 = $('#Front_Location_1');
var frontsize1 = $('#Front_Size_1');
$.get('fitguide3.xml', function(data){
$xml = $(data);
var rows = $(data).find('ROWSET ROW');
var makes = [];
$.each(rows, function(index, element){
var _make = $(element).find('MAKE').text();
makes.push('<option value="' + _make + '">' + _make + '</option>');
});
makes = $.unique(makes);
make.append(makes.join('\n'));
}, 'xml');
$('#make').on('change', function(){
var _value1 = $(this).val();
var _models = $xml.find('ROWSET ROW:contains("'+_value1+'")');
var models = [];
console.log(_models);
$.each(_models, function(index, element){
var _model = $(element).find('Model').text();
models.push('<option value="' + _model + '">' + _model + '</option>');
});
models = $.unique(models);
model.find('option').remove();
model.append(models.join('\n'));
});
$('#model').on('change', function(){
var _value2 = $(this).val();
var _years = $xml.find('ROWSET ROW:contains("'+_value2+'")');
var years = [];
console.log(_years);
$.each(_years, function(index, element){
var _year = $(element).find('YEAR').text();
years.push('<option value="' + _year + '">' + _year + '</option>');
});
years = $.unique(years);
year.find('option').remove();
year.append(years.join('\n'));
});
// $('#make').val()
// $('#model').val()
// $('#year').val()
$('#year').on('click', function(){
var _value3 = $(this).val();
var finalmodel = $('#model').val();
var _front1 = $xml.find('ROWSET ROW:contains("'+finalmodel+','+_value3+'")');
var front = [];
console.log(_front1);
$.each(_front1, function(index, element){
var _front = $('#frontspeakers').val();
front.push('<p>' + element + '</p>');
front = $.unique(front);
front1.append(element);
});
})
});
</script>
這是我想按Model AND year搜索的XML:
<ROWSET>
<ROW>
<MAKE>ACURA</MAKE>
<Model>CL</Model>
<YEAR>2001-2003</YEAR>
<Front_Location_1>Door</Front_Location_1>
<Front_Size_1>6 1/2</Front_Size_1>
<Front_Location_2>Sail Panel</Front_Location_2>
<Front_Size_2>1 </Front_Size_2>
<Rear_Location_1>Deck</Rear_Location_1>
<Rear_Size_1>6 x 9</Rear_Size_1>
<Rear_Location_2></Rear_Location_2>
<Rear_Size_2></Rear_Size_2>
<Other_Speakers></Other_Speakers>
</ROW>
</ROWSET>
這會搜索它們,但沒有結果。 正在進行的版本位於此處
因為這是我嘗試編寫的第一個腳本,所以對您其他人來說似乎很簡單,但是經過200多次搜索,我自己弄清楚了!
$('#year').on('click', function(){
var _value3 = $(this).val();
var finalmodel = $('#model').val();
var finalfilter = $xml.find('ROWSET ROW:contains("'+finalmodel+'")');
var _front1 = finalfilter.filter('ROWSET ROW:contains("'+_value3+'")');
console.log(_front1);
$.each(_front1, function(index, element){
var _front = $('#frontspeakers').val();
var front = [];
front.push('<p>' + element + '</p>');
front = $.unique(front);
front1.html(element);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.