2013-08-27 259 views
0
function test(results) { 
     //Populate the ComboBox with unique values 

     var Gov; 
     var values = []; 
     var features = results.features; 
     var og; 
     for (i = 0; i < features.length; i++) { 

      var aGOV = { 
       "GovName": features[i].attributes.ENG_NAME, 
       "GovNO": features[i].attributes.GOV_NO, 
       "Shape": features[i].geometry 
      } 
      og = new Option(features[i].attributes.ENG_NAME, aGOV); 
      var cbx = document.getElementById("cbxGov"); 
      cbx.options.add(og); 
     } 

    } 

    function gov_selection_change() 
    { 
     var cbx = document.getElementById("cbxGov"); 

     var itm = cbx.options[cbx.selectedIndex].value.hasOwnProperty("Shape"); 
    } 

HTML代碼如何訪問JavaScript對象屬性

<select id="cbxGov" onchange="gov_selection_change()"> 

我的問題是我不是能夠訪問我的gov_selection_change()功能aGOV的屬性時,顯示它有沒有這樣的屬性,ITM是假的。

+0

看起來你實際上並沒有試圖在'goc_selection_change'中訪問'aGOV'的任何屬性,對嗎?如果你這樣做,這將超出範圍。在'test'之外定義'aGOV'。 – apsillers

回答

0

一個HTMLOptionElement的值屬性總是返回一個DOMString(也稱爲文本),而不是一個對象。

因此,您必須在查找字典中保存要訪問的內容,然後使用返回的值作爲查找鍵。

var lookupDictionary = {}; 

function test(results) { 
    var lookupKey, 
     og; 
    //... 

    // don´t get the element in the loop 
    var cbx = document.getElementById("cbxGov"); 

    //... 

    for (i = 0; i < features.length; i++) { 
     lookupKey = features[i].attributes.GOV_NO; 

     lookupDictionary[lookupKey] = { 
      "GovName": features[i].attributes.ENG_NAME, 
      "GovNO": features[i].attributes.GOV_NO, 
      "Shape": features[i].geometry 
     } 

     og = new Option(features[i].attributes.ENG_NAME, lookupKey); 
     cbx.options.add(og); 
    } 
} 

function gov_selection_change() { 
    var cbx = document.getElementById("cbxGov"); 
    var key = cbx.options[cbx.selectedIndex].value; 
    var itm = lookupDictionary[key].hasOwnProperty("Shape"); 
} 
+0

非常感謝,我會試試這個 – anikas

+0

哇它的工作非常感謝 – anikas

+0

hye我需要更多的幫助。你能告訴我如何使用javascript從