-1

谁能帮我理解如何将变量连接prefix到我的字符串中,如下所示?

var prefix = 'q2am_utility_theme_';

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

这是我目前所拥有的,它不起作用。我究竟做错了什么?

4

5 回答 5

3

看起来你缺少一个 + 号:

var prefix = 'q2am_utility_theme_';

$(' #option_site_title, .form-text[name="'+ prefix + 'body_bg_color"]');
于 2013-04-29T18:42:56.800 回答
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\"]"

这仍然有效,只是更难阅读,恕我直言。

于 2013-04-29T18:48:58.077 回答
2

正如 Claudio、meagar 和 Kevin B 在评论中正确陈述的那样:

Jquery 不影响字符串连接 - 要在 JavaScript 中连接字符串,您需要取消引用 -> + -> variableName -> + -> quote - 所以它看起来像:

var myName = 'foo';
alert('The name assigned is ' + myName + '.');
//shows up as: The name assigned is foo.
于 2013-04-29T18:46:32.027 回答
1

试试这个:

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

放置前缀后,您拥有:

$('#option_site_title, .form-text[name="q2am_utility_theme_body_bg_color"]')
于 2013-04-29T18:42:57.480 回答
1
$("#option_site_title,.form-text[name='"+prefix+"body_bg_color']")
于 2013-04-29T18:43:13.787 回答