2013-04-29 74 views
-1

任何人都可以請幫我理解如何將變量prefix連接到我的字符串中,如下所示?在JavaScript中連接字符串

var prefix = 'q2am_utility_theme_'; 

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

這是我目前所擁有的,這是行不通的。我究竟做錯了什麼?

+6

你需要在'prefix'前加'+' – 2013-04-29 18:40:57

+3

字符串連接與jQuery無關。 – meagar 2013-04-29 18:41:30

+2

請注意,這與jQuery無關,除了字符串被傳遞給jQuery。缺少的'+'不是你的字符串唯一的錯誤。 – 2013-04-29 18:42:00

回答

3

試試這個:

var prefix = 'q2am_utility_theme_'; 

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

注意+符號。在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字符串,則需要解除引用 - > + - > VARIABLENAME - > + - >報價 - 所以它看起來像:

var myName = 'foo'; 
alert('The name assigned is ' + myName + '.'); 
//shows up as: The name assigned is foo.