我试图理解为什么你不能用字符串和变量构造一个 jQuery DOM 对象(即使变量也是一个字符串)。
//Works
var test1 = $('#test');
test1.addClass('success');
//Works
var test2 = '#test';
$(test2).addClass('success');
//Fails
var test3 = 'test';
$('.' + test3).addClass('success');
//Fails
var id = 'test';
var test4 = '.' + id;
$(test4).addClass('success');
这是一个 jsFiddle来演示。
我觉得我可能缺少一些基本的东西,但我在 jQuery 文档中找不到任何关于此的内容。
编辑: Doh,我应该注意到我在示例中使用了错误的选择器。我选择了 mcpDESIGNS 的答案,因为它确实修复了我的 jsFiddle。但是,我的代码中仍然出现错误。(“未捕获的异常:语法错误,无法识别的表达式:。”)如果有人感兴趣,下面是发生的事情:
我试图获取 URL 中的当前哈希,将字符串保存为变量,使用它来构造 jQuery DOM 对象,并将该对象传递给函数。
var hashTag = window.location.hash;
hashTag = hashTag.substr(1);
currentObject = $('.'+hashTag);
setSpriteX(currentObject);
当 URL 中没有哈希时,我发现我没有考虑到。我需要做的就是hashTag = 'defaulthash';
在我设置之前添加currentObject
。