谁能帮我理解如何将变量连接prefix
到我的字符串中,如下所示?
var prefix = 'q2am_utility_theme_';
$('
#option_site_title,
.form-text[name=\"'prefix + 'body_bg_color\"]
')
这是我目前所拥有的,它不起作用。我究竟做错了什么?
谁能帮我理解如何将变量连接prefix
到我的字符串中,如下所示?
var prefix = 'q2am_utility_theme_';
$('
#option_site_title,
.form-text[name=\"'prefix + 'body_bg_color\"]
')
这是我目前所拥有的,它不起作用。我究竟做错了什么?
看起来你缺少一个 + 号:
var prefix = 'q2am_utility_theme_';
$(' #option_site_title, .form-text[name="'+ prefix + 'body_bg_color"]');
试试这个:
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\"]"
这仍然有效,只是更难阅读,恕我直言。
正如 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.
试试这个:
$('#option_site_title, .form-text[name="' + prefix + 'body_bg_color"]')
放置前缀后,您拥有:
$('#option_site_title, .form-text[name="q2am_utility_theme_body_bg_color"]')
$("#option_site_title,.form-text[name='"+prefix+"body_bg_color']")