jQuery - .html()不接受&

时间:2013-06-05 13:12:36

标签: javascript jquery

出于某种原因,当我尝试在.html()内添加带有“&(amp)”的字符串时,该函数会抛出无法识别的表达式错误。你知道如何转换&字符串或者如何最好地将我想要的字符串插入相应的选择器吗?

var img_description = "Aluminum Desktop Computer, Keyboard & Mouse with Clipping Paths";

$(img_description).html(img_description);

请记住,在我的代码中img_description是一个动态变量。

3 个答案:

答案 0 :(得分:4)

这是一个无效的选择器,第一部分需要是你要替换html的元素。对于此示例,我们可以替换ID为test

的div的内容

演示:http://jsfiddle.net/tymeJV/YKhAa/1/

$("#test").html(img_description);

测试前的#是选择一个特定ID(在我们的例子中,ID为test)。

您应该熟悉选择器,这里是API的链接:http://api.jquery.com/category/selectors/

答案 1 :(得分:2)

这很好:

$(document).ready(function() {
   $('p').html('&');
});

http://jsfiddle.net/EJSS2/1/

你的代码错了。您尝试使用html作为选择器和html。

答案 2 :(得分:0)

你要做的事情毫无意义;你不能用任意字符串创建一个jQuery对象,所以它被解释为元素的选择器。 {/ 3}}

中介绍了该选择器中&符号(&)的问题
  

使用任何元字符(例如!"#$%&'()* +,。/:;< =>?@ [] ^`{| }〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\\。例如,id =" foo.bar"的元素可以使用选择器$(" #foo \\。bar")。

然而,即使你这样做,第一部分也不会为你做任何有用的事情,所以你不会发生任何事情。您需要首先选择至少一个元素或创建一个新元素,然后才能使用.html()设置其HTML内容(这将很乐意接受包含&的字符串,而无需您执行任何操作)。