我试图理解为什么不能用字符串和变量构造 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');
这是a jsFiddle来演示。
我觉得我可能缺少一些基本的东西,但我在 jQuery 文档中找不到任何关于此的内容。
编辑:哦,我应该注意到我在示例中使用了错误的选择器。我选择了 mcpDESIGNS 的答案,因为它确实修复了我的 jsFiddle。但是,我的代码中仍然出现错误。 (“未捕获的异常:语法错误,无法识别的表达式:。”)以下是发生的情况,以防有人感兴趣:
我试图获取 URL 中的当前哈希值,将字符串保存为变量,使用它来构造 jQuery DOM 对象,然后将该对象传递给函数。
var hashTag = window.location.hash;
hashTag = hashTag.substr(1);
currentObject = $('.'+hashTag);
setSpriteX(currentObject);
我发现我没有考虑到 URL 中没有哈希值的情况。我需要做的就是在设置 currentObject
之前添加 hashTag = 'defaulthash';
。
最佳答案
您需要有 $('#' + test3)
和 var test4 = '#' + id;
因为您尝试按 ID 选择不是类(class)。
。//类选择器
#//ID 选择器
关于jquery - 引用 DOM jQuery DOM 对象时使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270179/