【问题标题】:JQuery Selector Doesn't Recognize String Created using JS Replace FunctionJQuery 选择器无法识别使用 JS 替换函数创建的字符串
【发布时间】:2011-03-01 05:23:18
【问题描述】:

我在使用 JavaScript 和 JQuery 运行以下代码 sn-p 时遇到问题。 listOfDisplayCategories 是一个字符串值数组。

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

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

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

如果我硬编码 displayCategoryWithoutSpecialChar 变量中的值,这将正常工作。当我将它用作 JQuery 的选择器时,从这个替换函数返回的值似乎不起作用。有人可以帮帮我吗?

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

【问题讨论】:

  • 以及要更改 css 的元素的 HTML 标记...
  • 数组中的第一个字符串是“汽车/建筑技术”。替换功能后,我有“AutoBuildingTech”。以下标记是 css 的目标。

    汽车/建筑技术

    Lorem ipsum dolor sit amet, consectetur adipiscing elit posuere

标签: javascript jquery jquery-selectors


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 1970-01-01
    • 2021-08-21
    相关资源
    最近更新 更多