2013-04-29 45 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.