这是一个挥之不去的问题,虽然它可能看起来像一个菜鸟 - 这就像我一样。
如何在jQuery选择器中继续新行?我知道javascript新行只是
(\) single backslash
如
var someString = 'abc\
defghi';
alert(someString);
然而使用jQuery - 当我列出长选择器时这不起作用?即。
$('#id, .class, .class1, .class2, .class3, .class4, .class5, \
.class6, .class7').click(function() {
//some stuff
});
任何人都可以解释如何解决这个问题吗?
答案 0 :(得分:15)
$('#id, .class, .class1, .class2, .class3, .class4, .class5, ' +
'.class6, .class7').click(function() {
//some stuff
});
答案 1 :(得分:3)
$()
之间的内容只是一个字符串。话虽如此,你怎么把一个字符串分成两部分?
$('big selection text' +
'more selection' +
'more selection still')
或者,您可以在初次选择后添加到您的收藏中:
$('big selection text')
.add('more selection')
.add('more selection still')
答案 2 :(得分:2)
jQuery
是 JavaScript。不要误以为这是有区别的。您的代码是否可以在一行中处理所有内容?
我猜你的选择器实际上并没有选择任何元素(调用选择器时可能不存在DOM元素)。
答案 3 :(得分:0)
在JavaScript中,字符串不能跨越多行,因此要编码多行字符串,您需要执行以下操作:
var s = "This is a\n" +
"multiline\n" +
"string.\n";
请注意,只有在您真正想要字符串中的换行符时才需要换行符(\n
)。你的例子看起来像这样:
$('#id, .class, .class1, .class2, .class3, .class4, .class5, ' +
'.class6, .class7').click(function() {
//some stuff
});
答案 4 :(得分:0)
您可以关闭字符串并使用+
运算符添加字符串。
$('#id, .class, .class1, .class2, .class3, .class4, .class5,' +
'.class6, .class7').click(function() {
//some stuff
});
这应该有用。
答案 5 :(得分:0)
我怀疑这对你不起作用的原因是,当你将这些字符串送到这样的多行时,它显然包含一个新的行字符。可能jQuery不喜欢这个换行符在它的选择器字符串中。
我的建议是通过将你想要的每个元素应用于一个共享类来简化事情,这样就不需要像这样使用过长的选择器字符串。
但是如果你不能这样做,那么你可以通过将字符串分成不同的部分并使用+
来连接它们来解决问题,而不是将字符串连接到一条直线上。
答案 6 :(得分:0)
今天,另一个选择是使用模板文字https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals
$(`#id,
.class,
.class1,
.class2,
.class3,
.class4,
.class5,
.class6,
.class7`).click(function() {
//some stuff
});