2015-07-13 5 views
-1

Почему этот код работа:JQuery: передача каскадных переменной

$(".ab").css({'background':'#ce0000','color':'#EEE'}); 

Но это не делает:

f("ab"); 

function f(ab){ 

    var x = '".'+ ab +'"'; 

    $(x).css({'background':'#ce0000','color':'#EEE'}); 
} 

Даже жесткие alert(x) дисплеев ".ab" (точка AB между кавычками)

+1

Потому что ты написал _ab_, как это было переменная вместо как текст –

+0

Кавычки струны ** буквальным ** не являются частью Значение. '" .ab "' создает строку, содержащую .ab, тогда как '' ". '+ ab +'" ''создает что-то вроде« .foo », т. е. кавычки являются частью строки, которая является недопустимой (как селектор). –

+0

Неплохо, я не упоминал, что ab передается как аргумент функции, содержащей этот код – user3275707

ответ

3

Get избавиться от котировок.

var x = '.' + ab; 

Вот и в случае, если имя вашего выбора хранится в переменной с именем ab.

Если вы хотите передать .ab дословным, это так просто, как

var x = '.ab'; 
Смежные вопросы