2016-03-30 4 views
0

Zur Zeit kann ich anscheinend keine der Daten aus meiner XML-Datei abrufen. Unten ist der Code;jQuery Autocomplete wird keine XML-Daten durchlaufen

$(document).ready(function() { 
    setTimeout(function() { 
     $('#_Q0').autocomplete({ 
      source: function(request, response) { 
       $.ajax({ 
        url: "brands.xml", 
        dataType: "xml", 
        type: "GET", 
        success: function(xml) { 
         var results = []; 
         $(xml).find("brand").each(function() { 
          if (results.indexOf(request.term.toUpperCase()) >= 0) { 
           results.push(results); 
          } 
         }); 
         response(results); 
        } 
       }); 
      }, 
      autoFocus: true, 
      minLength: 3, 
      response: function(event, ui) { 
       if (!ui.content.length) { 
        var noResult = { 
         value: "", 
         label: "No results found" 
        }; 
        ui.content.push(noResult); 
       } 
      } 
     }); 
     var render = $('#_Q0').autocomplete('instance')._renderMenu; 
     $('#_Q0').autocomplete('instance')._renderMenu = function(ul, items) { 
      items.push({ 
       label: 'AUTRE MARQUE', 
       value: 'AUTRE MARQUE', 
       last: true 
      }); 
      render.call(this, ul, items); 
     }; 
    }, 100); 
}); 

und hier ist ein Plunk;

https://plnkr.co/edit/QFOYcJc7iQ8UQc0e5SKH?p=preview

ich mit einer JSON Quelle vorher gearbeitet, aber jetzt in XML wechseln.

Vielen Dank im Voraus

+0

Haben Sie die Library-Funktion versucht, mit? http://api.jquery.com/jQuery.parseXML/ – blgt

Antwort

0

Th Problem ist der XML-Verarbeitung in

$(document).ready(function() { 
    setTimeout(function() { 
    $('#_Q0').autocomplete({ 
     source: function(request, response) { 
     $.ajax({ 
      url: "brands.xml", 
      dataType: "xml", 
      type: "GET", 
      success: function(xml) { 
      var term = request.term.toLowerCase(); 
      var results = $(xml).find("brand").filter(function() { 
       return $(this).attr('label').toLowerCase().indexOf(term) > -1; 
      }).map(function() { 
       return { 
       label: $(this).attr('label') 
       } 
      }).get(); 
      response(results, xml); 
      } 
     }); 
     }, 
     autoFocus: true, 
     minLength: 3, 
     response: function(event, ui) { 
     if (!ui.content.length) { 
      var noResult = { 
      value: "", 
      label: "No results found" 
      }; 
      ui.content.push(noResult); 
     } 
     } 
    }); 
    var render = $('#_Q0').autocomplete('instance')._renderMenu; 
    $('#_Q0').autocomplete('instance')._renderMenu = function(ul, items) { 
     items.push({ 
     label: 'AUTRE MARQUE', 
     value: 'AUTRE MARQUE', 
     last: true 
     }); 
     render.call(this, ul, items); 
    }; 
    }, 100); 
}); 

Demo: Plunker

+0

Perfekt! Danke vielmals :) – alexc