2014-01-09 3 views
1

У меня трудное время, когда селектор работает правильно. У меня есть имя класса, хранящегося в переменной, которую я обычно выбрать, как:jquery не распознает селектор классов

$("." + class_name) 

Когда я делаю это, однако, я получаю сообщение об ошибке: Syntax error, unrecognized expression: . , как будто это не распознающий селектор класса ,

Практически каждый другой пример того, как выбирать классы, основанные на переменных, также использует этот метод, я пропустил что-то действительно основное здесь? Спасибо за вашу помощь.

+2

Каково значение 'class_name' –

+0

"group2" Я могу запустить console.log ($ (". Group2"). Length); и получить правильный результат. –

+1

можете ли вы разместить еще какой-нибудь код? –

ответ

1

Сначала сделайте alert(class_name) на линии непосредственно перед этим, чтобы убедиться, что имя_класса действительно имеет значение. Кроме того, убедитесь, что имя класса написано правильно как в переменной, так и в вашей таблице стилей. Кроме того, помните, что классы css CASE-SENSITIVE, поэтому «myClass» <> «Myclass». Если все это проверяется, попробуйте создать переменную в строке перед предупреждением и присвоить «.». + class_name. Что-то вроде этого:

var fixit = "." + class_name; 
$(fixit); 

Дайте мне знать, если это не поможет.

+0

То, что это было. Имена классов кормятся массивом, который каким-то образом получает пустую строку в качестве первой. Кажется, это был первый правильный ответ, поэтому я приму его через несколько минут, когда это позволит мне. Всем спасибо. –

1

Возможно, у вас есть '.' в class_name, так что вы пытаетесь выбрать $('..class_name'). Сделайте console.log(class_name) для подтверждения. Либо это, либо class_name не определено

0

Вы можете попробовать что-то вроде

var class_name = "container"; 
var selector = "."+class_name; 

$(selector).html("hello universe !"); 
console.log(typeof (selector)); //prints "string" 

FIDDLE

0

Я думаю, что имя класса не в двойных кавычках или empty.Following код работает отлично в jsFiddle

var className="test" 
alert($("." + className).html()); 

JSFIDDLE

Смежные вопросы