我想知道为什么你不能用一个字符串和变量构造一个jQuery DOM对象(即使变量也是一个字符串)。在引用DOM时使用变量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中的哈希值。所有我需要做的是添加hashTag = 'defaulthash';
之前,我设置currentObject
。
您正在使用'.'而不是'#','''会引用一个类。我错过了什么吗?你的DOM没有类。 –
如果还不明显,jQuery无法区分您的选择器是裸线还是字符串变量。 –