2013-04-29 3 views
-1

Может ли кто-нибудь помочь мне понять, как связать переменную prefix с моей строкой, как показано ниже?Объединить строку в JavaScript

var prefix = 'q2am_utility_theme_'; 

$(' 
    #option_site_title, 
    .form-text[name=\"'prefix + 'body_bg_color\"] 
') 

Это то, что у меня есть в настоящий момент, который не работает. Что я делаю не так?

+6

вам нужно '+' перед 'префикс' –

+3

Конкатенация строк не имеет ничего общего с jQuery. – meagar

+2

Обратите внимание, что это не имеет ничего общего с jQuery, кроме того факта, что строка передается в jQuery. Недопустимая '+' не единственная ошибка в вашей строке. –

ответ

3

Попробуйте это :

Примечание: +. В JavaScript оператор + либо добавляет числовые значения друг другу, либо объединяет значения строк друг с другом.

Приведенный выше код создает одну строку:

'#option_site_title, .form-text[name="q2am_utility_theme_body_bg_color"]' 

Затем он использует его, чтобы сделать выбор JQuery, используя: $(selector).

Кстати, вам не нужны экраны \ для ваших двойных кавычек, потому что JavaScript позволяет создавать строки с использованием одиночных или двойных кавычек, но нельзя сочетаться с другими.

Другими словами, если вы пишете:

'.form-text[name="' + prefix + 'body_bg_color"]' 

Это будет работать нормально, потому что строка начинается с ', и, следовательно, относится к " символа в строке как литерал, а не конечных цитата должна быть экранирована. Вам нужен только символ эвакуации, если вы напишете его следующим образом:

".form-text[name=\"" + prefix + "body_bg_color\"]" 

Это по-прежнему актуально, только труднее читать, имхо.

3

Похоже, вы упускаете знаком +:

var prefix = 'q2am_utility_theme_'; 

$(' #option_site_title, .form-text[name="'+ prefix + 'body_bg_color"]'); 
1

Попробуйте это:

$('#option_site_title, .form-text[name="' + prefix + 'body_bg_color"]') 

после ввода префикса у вас есть:

$('#option_site_title, .form-text[name="q2am_utility_theme_body_bg_color"]') 
1
$("#option_site_title,.form-text[name='"+prefix+"body_bg_color']") 
2

Клаудио , meagar и Kevin B правильно заявили в комментариях:

Jquery не влияет на сцепление строк - для конкатенации строки в JavaScript, вам нужно конец цитаты -> + -> имяПеременной -> + -> цитата - так это выглядит:

var myName = 'foo'; 
alert('The name assigned is ' + myName + '.'); 
//shows up as: The name assigned is foo. 
Смежные вопросы