jQuery如何将Javascript继续到新行?

时间:2011-09-20 14:38:58

标签: javascript jquery formatting

这是一个挥之不去的问题,虽然它可能看起来像一个菜鸟 - 这就像我一样。

如何在jQuery选择器中继续新行?我知道javascript新行只是

(\) single backslash

var someString = 'abc\
defghi';
alert(someString);

然而使用jQuery - 当我列出长选择器时这不起作用?即。

$('#id, .class, .class1, .class2, .class3, .class4, .class5, \
   .class6, .class7').click(function() {
      //some stuff
});

任何人都可以解释如何解决这个问题吗?

7 个答案:

答案 0 :(得分:15)

$('#id, .class, .class1, .class2, .class3, .class4, .class5, ' + 
  '.class6, .class7').click(function() {
      //some stuff
});

http://jsfiddle.net/X6QjK/

答案 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
});