jquery - 引用 DOM jQuery DOM 对象时使用变量

标签 jquery variables dom object

我试图理解为什么不能用字符串和变量构造 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/

相关文章:

javascript - 添加到第 3 方页面的 DOM 时如何避免 HTML ID 冲突?

jquery - 滚动后更改 css 标题

javascript - JQuery:如何替换两个特定部分之间的属性部分?

java - 是什么导致我的二维数组发生变化?

Php 从不同的类运行时扩展(扩展为变量?)

javascript - 为什么 Ractive.js 的 reset() 和 update() 方法在有一个带有 array.prototype.sort() 的助手和一个空对象的数据时复制模板

javascript - 使用 Fabricjs 时如何在调整 Canvas 元素大小时防止内容缩放

javascript - 如果选择下拉菜单只有一个选项,如何禁用它?

java - JAVA中访问另一个类变量

php - 为什么使用dom而不是regex来解析网页?