如何使用''在javascript里面另一个''声明?

时间:2015-05-29 23:18:31

标签: javascript jquery

我有一个问题。

我正在使用调用HTML元素的javascript,现在我想添加另一个也使用javascript的元素,但我不知道如何组合它们。 这是第一个:

list_options+='<li><input type="checkbox" value="Fuction 1 [first]" name="html_options[]" class="check-opt" data="1">Function 1 <span>[first]</span</li>';

我需要整合第一个:

<p>Coockie warning, <a onmouseover="nhpup.popup(' Coockie stuff text ');" style="cursor:pointer;" > read more </a>!</p>

所以,现在如果我想将这样的结合起来,它就不会起到文档中''的作用:

list_options+='<li><input type="checkbox" value="Function 1 [1$]" name="html_options[]" class="check-opt" data="1">Function 1 <span>[1$]</span><p><a onmouseover="nhpup.popup(' TEXT THAT SHOULD GET DISPLAYED ');" style="cursor:pointer;" > ? </a>!</p></li>';

我该怎么办?

2 个答案:

答案 0 :(得分:1)

您可以使用反斜杠\字符转义单引号。

答案 1 :(得分:0)

首先关闭:当我引用字符串文字时,我指的是字符串基元的创建,如下所示。有两种类型的字符串,基元和对象。字符串对象的创建方式类似于new String(..)

在javascript中,使用引号或双引号创建字符串文字。这意味着您可以定义类似

的字符串
str = 'a string'

str = "a string"

单引号

但是你说你用引号定义你的字符串,就像第一个例子一样,然后你把单词&#34; can&#39; t&#34;在里面。现在定义如下所示。

str = 'this can't work'

这会导致错误,因为实际字符串被视为'this can'。如果我们想在用引号定义的字符串文字中使用引号,我们必须转义这些字符,并在它们之前使用转义字符\。 (注意:这个转义字符不会显示在最终字符串中,甚至不会显示在其中,正如Felix在评论中指出的那样,并在下面详细说明)

要让字符串实际工作并打印'this can't work',这意味着我们必须执行以下操作:

str = 'this can\'t not work'

双引号

如果我们用双引号定义你的字符串,就像第二个例子一样,我们可以在其中加上引号而不必转义它,所以以下工作:

str = "this can't not work"

现在,我们想把一个引号放入字符串中。我们可以使用单引号或双引号。如果我们在用双引号定义的字符串文字中使用双引号,我们将不得不转义那些字符,就像我们在用单引号定义的字符串文字中使用单引号一样,如下所示:

str = "he said \"foo bar baz\""

如果您在单个引号中定义字符串文字,则不需要在该字符串中转义双引号,如下所示:

str = 'he said "foo bar baz"'

以编程方式创建字符串

假设我们有一个可以是truefalse的变量,我们想告诉用户。为此,我们可以创建一个字符串变量,并将值直接添加到其中,如下所示:

var someValue = true;
var str = 'hey some value is ' + someValue + '.'

您可以根据需要添加到字符串中。

原始问题

您似乎希望在字符串list_options中嵌入一些变量。为此,请尝试以下操作:

list_options+='<li><input type="checkbox" value="Function 1 [1$]" name="html_options[]" class="check-opt" data="1">Function 1 <span>[1$]</span><p><a onmouseover="nhpup.popup(' + SOME_VARIABLE_YOU_WANT_TO_DISPLAY + ');" style="cursor:pointer;" > ? </a>!</p></li>';

但是,如果您不想将变量嵌入字符串中,并且只想显示固定文本,请尝试以下任一操作:

这使用转义字符:

list_options+='<li><input type="checkbox" value="Function 1 [1$]" name="html_options[]" class="check-opt" data="1">Function 1 <span>[1$]</span><p><a onmouseover="nhpup.popup(\' TEXT THAT SHOULD GET DISPLAYED \');" style="cursor:pointer;" > ? </a>!</p></li>';

这使用双引号:

list_options+='<li><input type="checkbox" value="Function 1 [1$]" name="html_options[]" class="check-opt" data="1">Function 1 <span>[1$]</span><p><a onmouseover="nhpup.popup(" TEXT THAT SHOULD GET DISPLAYED ");" style="cursor:pointer;" > ? </a>!</p></li>';

转义字符

因此,在定义字符串时需要学习使用转义字符,因为字符串中的某些字符可能会破坏字符串的创建。此外,还有一些特殊字符可以在字符串中执行您可能需要的操作,例如新行(使用\ n)或制表符(使用\ t)。如果您想了解有关这些字符的更多信息,只需google&#39; javascript转义字符&#39;或者,MDN在此处提供了很好的文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String