JQuery选择器无法识别使用JS替换函数创建的字符串

时间:2011-02-28 01:42:36

标签: javascript jquery jquery-selectors

我在使用JavaScript和JQuery运行以下代码段时遇到问题。 listOfDisplayCategories是一个String值数组。

使用FireBug进行调试时,我可以看到displayCategoryWithoutSpecialChar中设置的值是我期望的值。

当我尝试在下一个语句中使用此值作为JQuery的选择器时,我没有看到我期望的行为。

基本上,该值不会被识别为有效选择器。它没有失败或给出错误,它只是没有按照我期望的方式设置背景图像。

如果我对displayCategoryWithoutSpecialChar变量中的值进行硬编码,则此方法可以正常工作。当我将它用作JQuery的选择器时,看起来这个替换函数返回的值不起作用。有人能帮助我吗?

var displayCategoryWithoutSpecialChar = 
     listOfDisplayCategories[i].replace(/[^a-zA-Z0-9]+/g, "");
$("#"+displayCategoryWithoutSpecialChar).css("background-image","url(images/Aut.png)");

1 个答案:

答案 0 :(得分:0)

我遇到的问题是我使用的选择器是基于尚不存在的HTML。此代码段位于创建HTML内容的for循环内。我试图指定的选择器是用于尚未成为文档一部分的html。在附加HTML后使用选择器和CSS函数移动行修复了问题。我通过JQuery脚本调试到调用document.getElementById(String)的位置。此调用未返回元素。我仍然不清楚为什么硬编码字符串值允许这个工作。菜鸟错误。