2012-03-30 96 views
0

因此,我在Rails應用程序中發出Ajax請求,並且當我想恢復變量時遇到了一些小問題。從jQuery變量中刪除引用

讓我們說,我通過Ajax請求的數據看起來像這樣

var dataAll = ({dataForKey: dataItemID}); 

而讓說,兩秒變量進行回收這樣

var dataForKey = '<%= feed_item.class.to_s.foreign_key %>'; 
var dataItemID = '<%= feed_item.id %>'; 

試想一下,feed_item.class.to_s.foreign_key回報photo。所以,dataForKey的值是'photo'

但是,我需要dataForKeyphoto,而不是'photo',我不能說

var dataForKey = <%= feed_item.class.to_s.foreign_key %>; 

因爲jQuery查找一個名爲photo變量...

那麼,讓我們來總結一下:如何我可以從dataForKey中刪除報價嗎?

+0

「所以,dataForKey值是'photo'」這是真的嗎? JavaScript是否不使用引號來分隔字符串並將其保存在值中?如果jQuery正在尋找一張可變照片,而你不想要它,那麼你是否真的需要生成的報價? – Rup 2012-03-30 13:30:04

+0

我沒有得到你想要的照片,但沒有可變的照片,想要照片但不是'照片'..通過刪除引號將語法錯誤,所以你想要什麼? – Vytautas 2012-03-30 13:31:00

+0

是一張用javascript聲明的變量嗎?不知道我明白,它是否會返回「'照片'」?或字符串'照片'? – Eric 2012-03-30 13:31:58

回答

2

而不是保存鍵的名稱到一個變量,只需直接將它輸出:

var dataItemID = '<%= feed_item.id %>'; 
var dataAll = ({<%= feed_item.class.to_s.foreign_key %>: dataItemID}); 

或者,創建你的對象並分別設置數值:

var dataForKey = '<%= feed_item.class.to_s.foreign_key %>'; 
var dataItemID = '<%= feed_item.id %>'; 
var dataAll = {}; 
dataAll[dataForKey] = dataItemID; 
+0

是的,第一個版本是我正在做的,它工作得很好。但是我把它放在一個外部的JS文件中,而你的第二個命題可行!謝謝 :) – Axiol 2012-03-30 13:55:02

0

你可以嘗試使用eval

var dataForKey = eval('<%= feed_item.class.to_s.foreign_key %>'); 
0
dataForKey = dataForKey.replace("'", "");