我有一个变量,其值与页面上的ID相同。当我这样做:用文字和变量构建选择器?
var foo = 'value';
$('#' + foo).thing();
它不起作用。但这确实有效:
var foo = 'value';
var bar = '#' + foo; //'#value';
$(bar).thing();
我该如何在单行中构建该选择器?创建额外的单次使用变量似乎很浪费。
我有一个变量,其值与页面上的ID相同。当我这样做:用文字和变量构建选择器?
var foo = 'value';
$('#' + foo).thing();
它不起作用。但这确实有效:
var foo = 'value';
var bar = '#' + foo; //'#value';
$(bar).thing();
我该如何在单行中构建该选择器?创建额外的单次使用变量似乎很浪费。
用户错误 - 我曾在变量(在Twitter的事情工作)的“@”,因此所得到的ID是“#@值”,这是因为@违法。修正了这个问题,现在它正在工作。
嗯。我从来没有遇到过这个问题。但是,也许你可以尝试只需添加另一组括号在你的内心声明:$(("#" + foo)).something();
,如果im不偏轨,这可能会迫使JavaScript来“计算”内部支架第一,它传递到jQuery选择功能之前。 goog运气...
不...实际上我只是测试它,它可以很好地动态生成选择器字符串。如果你使用了错误的名字,请确保你声明了保存选择器字符串的变量,JavaScript将会创建一个新的空字符串并尝试将其用作预期的变量,这显然会失败。如果你复制你的代码,我会看看... – joshuafreelance 2010-10-15 21:41:38
这应该工作。你能发布你的实际代码吗? – hookedonwinter 2010-10-15 21:24:23
概念证明:http://jsfiddle.net/JVxRX/ – hookedonwinter 2010-10-15 21:28:26
@hooked是正确的 - 这是* *外的问题是影响这一点,如果它不工作。 – 2010-10-15 21:30:00