2011-04-05 82 views
0

我很困惑&相當沒有經驗的jQuery。我試圖從thickbox窗口將值返回到父頁面上的輸入元素。爲了確定正確的輸入框,我試圖連接兩個值,其中一個我從thickbox窗口成功獲取,另一個值是一段文本,如下面的示例。連接變量作爲選擇器不工作(Javascript/jquery)

grab_flavor = $('#flavor').val(); //contains 'apple' 
alert(grab_flavor); // returns 'apple' 
juice = "#" + grab_flavor + "juice"; 
alert(juice); // returns '#applejuice' 
$(juice , top.document).val("favorited"); //doesn't seem to work... 
flavor = "#apple"; 
juice = flavor + "juice"; 
$(juice , top.document).val("favorited"); // works 

我似乎無法找出原因,第一個串聯不工作,即使它返回時,我與警報顯示它正確的價值,而不是什麼都不會發生。

我嘗試了多種不同的方式來連接,但是當我嘗試包括'grabflavor'時,它們都失敗了......非常感謝!

更新:致力於更好的活生生的例子......

更新2(最終):想通了......語法畢竟是有效的,沒有錯的串聯,我只是忽略了一個小因爲我正在處理看起來相同的非常長的選擇器......下一次我將採取更長的休息時間,這樣我可以從新鮮的眼睛中受益。固執地追求理解一個問題並不總是如此。感謝評論者張貼並指出jsfiddle和jsbin,這兩個令人難以置信的有用發現!

+1

'$(#flavor).val()'是一個錯字嗎?它應該是'$('#flavor')。val()' – JohnP 2011-04-05 06:20:46

+1

'alert(juice)也一樣。 //返回'applejuice''。它應該是'警惕(果汁); //返回'#applejuice'',不應該嗎? – 2011-04-05 06:21:42

+0

抱歉錯別字......更正了,謝謝! – 2011-04-05 06:27:50

回答

0

除非是在轉錄過程中的另一個錯字,問題就在這裏:

juice = "#" + grabflavor + "juice"; 

你錯過了下劃線的grab_flavor。正確,並且它有效(live copy)。

+0

這工作,謝謝!在我的原始代碼的環境中肯定還有其他一些問題(如你猜測,缺失的下劃線是一個錯字),但至少我知道它應該是原則性的。 – 2011-04-05 21:35:43