【发布时间】:2012-08-29 12:12:01
【问题描述】:
我试图理解为什么你不能用字符串和变量构造一个 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。但是,我的代码中仍然出现错误。 ("Uncaught Exception: Syntax error, unrecognized expression: .") 以下是发生的情况,以防万一有人感兴趣:
我试图获取 URL 中的当前哈希,将字符串保存为变量,使用它来构造 jQuery DOM 对象,并将该对象传递给函数。
var hashTag = window.location.hash;
hashTag = hashTag.substr(1);
currentObject = $('.'+hashTag);
setSpriteX(currentObject);
我发现当 URL 中没有哈希时,我没有考虑到。我需要做的就是在设置currentObject 之前添加hashTag = 'defaulthash';。
【问题讨论】:
-
您使用的是
.而不是#,.将引用一个类。我错过了什么吗?你的 DOM 没有类。 -
如果还不明显,jQuery 无法区分您的选择器是裸字符串还是字符串变量。
标签: jquery variables dom object