Селектор JQuery не распознает строку, созданную с помощью функции замены JS - PullRequest
0 голосов
/ 28 февраля 2011

У меня проблемы с запуском следующего фрагмента кода с использованием 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 голосов
/ 01 марта 2011

Проблема, с которой я столкнулся, заключается в том, что используемый мной селектор был основан на HTML, которого еще не было. Этот фрагмент кода был внутри цикла for, который создавал контент HTML. Селектор, который я пытался указать, был для html, который еще не был частью документа. Перемещение строки с помощью селектора и функции CSS после добавления HTML решило проблему. Я отлаживал через скрипт JQuery до точки, где вызывался document.getElementById (String). Этот вызов не вернул элемент. Мне все еще непонятно, почему жесткое кодирование строкового значения позволило этому работать. Ошибка новичка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...