2010-09-16 67 views
1

後,我想通過我自己的對象數組:results[num_row] = {'title:\'' + title + '\', ' + 'url:\'' + url + '\''};的javascript:丟失:物業編號

但這返回螢火

的錯誤,當我嘗試:results[num_row] = {title:'Link A', url:'/page1'}

它的工作原理。

感謝,

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

回答

3

這就給了你一個SyntaxError,該Object initializer語法並不喜歡這項工作。

如果你想使用titleurl變量在一個新的對象,你可以輕鬆地:

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

我這樣一個骨頭...謝謝!我還想添加額外的值,例如:'results [num_row] = {'title':title,'url':url,'support_url':support_url,'description':description,'contacts':contacts };' – specked 2010-09-16 14:31:00

1

本質上講,當你寫

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

您正在嘗試設置的

results[num_row] 

等於不完整的物體

{ PropertyName } 

,當你需要

{ PropertyName : PropertyValue } 
0

嘗試

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