连接变量作为选择器不起作用(Javascript / Jquery)

时间:2011-04-05 06:18:40

标签: javascript jquery thickbox

我很困惑&非常缺乏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 个答案:

答案 0 :(得分:0)

除非它是转录过程中的另一个错字,否则问题出现在:

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

你错过了grab_flavor中的下划线。纠正它,并且它有效(live copy)。