字符串不适用于double&单引号

时间:2015-03-27 18:20:13

标签: javascript

在我的代码中,我有一个JavaScript函数,其行如下所示:

var header = "<a href='javascript:SortTable(0,'T');'>Name</a>";

出于某种原因,这不起作用。我认为问题是字符串中的单引号或双引号。

我们的想法是将此标题作为列标题插入带有可点击链接的表格中。问题是,(&#39; T&#39;)在这里不起作用。我想用整数字符参数调用JS函数 SortTable

我尝试使用转义字符进行以下操作,而且也无法正常工作。

var header = "<a href='javascript:SortTable(0,\'T\');\'>ATO</a>";

如何使这个长字符串正常工作?

3 个答案:

答案 0 :(得分:4)

只是为了记录,另一件可行的事情是

var header = "<a href='javascript:SortTable(0,&quot;T&quot;);'>ATO</a>";

JavaScript不会关注HTML实体表示法,但是当HTML解析器将这些内容添加到文档中时。

答案 1 :(得分:3)

使用双引号:

var header = "<a href='javascript:SortTable(0,\"T\");'>ATO</a>";

  

出于某种原因,这不起作用。我认为问题是字符串中的单引号或双引号。

是。考虑生成的HTML:

<a href='javascript:SortTable(0,'T');'>Name</a>
//      ^                       ^
//    start                    end

您甚至可以通过语法高亮显示它。现在,通过\转发它也不起作用。 \是转义字符JS字符串。 \'变为',因此您会得到相同的结果。

但即使\\'也无济于事,因为\不是HTML中的转义字符。

答案 2 :(得分:3)

使用

var header = "<a href=\"javascript:SortTable(0,'T');\">ATO</a>";

有关

<a href="javascript:SortTable(0,'T');">ATO</a>