2010-09-16 5 views
1

Je suis en train de passer mon propre tableau d'objets: results[num_row] = {'title:\'' + title + '\', ' + 'url:\'' + url + '\''};javascript:: manquant après id propriété

mais retourne l'erreur dans Firebug

lorsque je tente: results[num_row] = {title:'Link A', url:'/page1'}

cela fonctionne.

Merci,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <link rel="stylesheet" href="styles.css" type="text/css" /> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript" src="jquery.autocomplete.js"></script> 
<script type="text/javascript"> 
var test = ["a","b","ab"]; 
var results = new Array(); 
function prep(){ 
$("#searchbox").autocomplete(results,{ 
    formatItem: function(item) { 
    return item.title; 
    } 
}).result(function(event, item) { 
    location.href = item.url; 
}); 
} 
$(document).ready(function(){ 
       $.ajax({ 
        type: "GET", 
        url: "links2.xml", 
        dataType: "xml", 
        success: function(xml) { 
         // Count elements 
         var count = $(xml).find('ROW').length; 
         // Create Array of correct length 
         //window.results = new Array(count); 
         // Set array variable 
         var num_row = 0; 
         //data string 
         var datastring = ""; 
         //start of find block 
         $(xml).find('ROW').each(function() { 
          var title = $(this).find('SC_DF_FIELD_1').text(); 
          var url = $(this).find('SC_DF_FIELD_2').text(); 
          var support_url = $(this).find('SC_DF_FIELD_3').text(); 
          var description = $(this).find('SC_DF_FIELD_4').text(); 
          var contacts = $(this).find('SC_DF_FIELD_5').text(); 
          //clean up xml variables 
          url = url.substring(url.indexOf('>') + 1, url.indexOf('/a') - 1); 
          support_url = support_url.substring(support_url.indexOf('>') + 1, support_url.indexOf('/a') - 1); /*need to clean up contacts search later */ 

          //alert(title + '\t' + url + '\t' + support_url + '\t' + description + '\t' + contacts); 
          results[num_row] = {'title:\'' + title + '\', ' + 'url:\'' + url + '\''}; 
          //results[num_row] = title; 
          //results[num_row] = {text:'Link A', url:'/page1'} 
          num_row++ 

          // $('<div class="items"></div>').html('<a href="' + url + '">' + title + '</a>').appendTo('#page-wrap'); 
         }); 
         //end of find block 
         prep(); 
        } 
       }); 
}); 
</script> 
</head> 
<body> 
    <div id="page-wrap"> 
<FORM autocomplete="off"><INPUT id="searchbox" type="text"/> 
</FORM></DIV> 
</body> 
</html> 

Répondre

3

Cela vous donne une SyntaxError, la syntaxe Object initializer ne fonctionne pas comme ça.

Si vous souhaitez utiliser les title et url variables dans un nouvel objet, vous pouvez facilement:

//... 
results[num_row] = {'title': title , 'url': url}; 
//... 
+0

Je suis une tête d'os ... Merci! Je voudrais aussi ajouter les valeurs supplémentaires que j'ai: 'results [num_row] = {'title': titre, 'url': url, 'support_url': support_url, 'description': description, 'contacts': contacts }; ' – specked

1

Essentiellement lorsque vous écrivez

{'title:\'' + title + '\', ' + 'url:\'' + url + '\''} 

Vous essayez de définir la valeur de

results[num_row] 

égal à un objet incomplet

{ PropertyName } 

lorsque vous avez besoin

{ PropertyName : PropertyValue } 
0

Essayez

results= []; 
num_row = 0; 
title = "myTitle"; 
url = "myURL"; 
results[num_row] = {'title': title, 'url': url} 
Questions connexes