2011-04-19 59 views
0

我正在處理幾個動態更新的選擇框,很像動態更新make,model等的自動網站。在我的腳本的早期,我確定了不斷變化的select,然後確定下一個選擇,並從網頁拉它的ID如下:使用select的id屬性來處理jQuery中的JSON數據

var next_select_id = $(next_select).attr('id'); 

我把它稱爲next_select_id因爲任何給定的選擇對應於JSON響應的父對象類型的HTML ID。

對於兩個選擇帶有ID「A」和「B」的情況,在改變A時,next_select_id應該是「B」。這稍後在我通過連接next_select_id與字符串生成URL的頁面中工作(例如,它生成http://testing.com/users/B就好了)。

後來當我嘗試處理JSON文件具有基於next_select_id含名稱和ID值這種方式母密鑰上:

$.each(data, function(i, j){ 
    row = "<option value=\"" + j.next_select_id.id + "\">" + j.next_select_id.name + "</option>"; 
    $(row).appendTo(next_select);      
}); 

在對應於一個ActiveRecord對象的ID該情況下的j.something.id

它說「不能讀取未定義的屬性'id'」。在嘗試此操作之前,我需要以某種方式轉換next_select_id嗎?謝謝你的幫助!

回答

0

看來我對使用我的字符串分配給變量的正確方法感到有點困惑。最後,修復是一個簡單的符號更改爲:

j[next_select_id]["name"] 
0

看起來您已經將next_select_id設置爲ID字符串。只需在$ .each中刪除額外的.id文件即可。 (如果沒有,請發佈代碼,您爲$ .each設置next_select_id。)

+0

對不起,我有點分散。我基本上問的是如果我的var next_select_id = $(next_select).attr('id');商店,比如說「B」,爲什麼「A」+ B +「C」在我的腳本中產生「ABC」,而j.next_select_id.id不產生j.B.id。我覺得我應該在嘗試在每個函數中使用它之前轉換next_string_id。 – 2011-04-19 02:54:58

+0

對不起,我的意思是「A」+ next_select_id +「C」產生「ABC」。 – 2011-04-19 16:04:08