2015-08-05 3 views
0

Я делаю тонны прогресса в моем руководстве по управлению транспортным средством. Я сделал раскрывающийся список динамически заполняемым на основе предыдущих выборов, и теперь мне нужны эти выборы для поиска файла xml и возврата моих результатов. Мой старый код просматривался только в течение года, и он возвращал все автомобили в том же году. Я пытаюсь проанализировать свой XML с помощью нескольких переменных и теперь не могу получить никаких результатов. как я могу искать модели, а затем искать годы в модели? вот мои фрагменты кода ниже.Поиск нескольких узлов в XML с помощью jQuery

<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> 

И вот 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> 

Это их ищет, но не получает никаких результатов. Незавершенное исполнение HERE

ответ

0

Будучи тем, что это первый скрипт, который я когда-либо пытался написать, он, вероятно, кажется очень простым для всех вас, но более 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); 
    }); 
Смежные вопросы