我有一个变量,其值与页面上的ID相同。当我这样做时:
var foo = 'value';
$('#' + foo).thing();
它不起作用。但这确实有效:
var foo = 'value';
var bar = '#' + foo; //'#value';
$(bar).thing();
如何在一行中构建该选择器?创建额外的单一用途变量似乎很浪费。
答案 0 :(得分:1)
用户错误 - 我在变量中有一个'@'(在Twitter上工作),因此产生的ID是'#@ value',因为@是非法的。修正了,它现在正在运作。
答案 1 :(得分:0)
嗯。我从来没有遇到过这个问题。但也许您可以尝试在内部声明周围添加另一组括号:
$(("#" + foo)).something();
如果我不偏离轨道,这可能会强制javascript“计算”首先将内部括号传递给jQuery选择器函数。 Goog运气好......